Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 07.01.2017
Сообщений: 30

Семисегментные часы

11.03.2020, 16:51. Показов 2550. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно сделать семисегментные (цифровые) часы на c#. Варианты реализации с помощью смены шрифта видел, но использовать не хочу. Задумал сделать такие часы с помощью pictureBox на каждый сегмент часов, и свойством visible "зажигать" их с помощью тернарных операторов. Но не могу придумать как связать таймер "DateTime.Now", который и будет определять время, с сегментами часов. Хочу увидеть мнение о такой реализации, и по возможности помощь в такой задаче)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Data;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
 
        public Form1()
        {
         InitializeComponent();         
        }
 
        public class digs
        {
            
            public digs()
            {
                int[] nums = new int[7] { 0, 0, 0, 0, 0, 0, 0 };
                int i = 0;
                
                switch (i)
                {
                    case 0:
                        nums = new int[7] { 0, 1, 1, 1, 1, 1, 1 };
                        break;
                    case 1:
                        nums = new int[7] { 0, 0, 0, 0, 1, 1, 0 };
                        break;
                    case 2:
                        nums = new int[7] { 1, 0, 1, 1, 0, 1, 1 };
                        break;
                    case 3:
                        nums = new int[7] { 1, 0, 1, 1, 1, 1, 1 };
                        break;
                    case 4:
                        nums = new int[7] { 1, 1, 0, 0, 1, 1, 0 };
                        break;
                    case 5:
                        nums = new int[7] { 1, 1, 0, 1, 1, 0, 1 };
                        break;
                    case 6:
                        nums = new int[7] { 1, 1, 1, 1, 1, 0, 1 };
                        break;
                    case 7:
                        nums = new int[7] { 0, 0, 0, 0, 1, 1, 1 };
                        break;
                    case 8:
                        nums = new int[7] { 1, 1, 1, 1, 1, 1, 1 };
                        break;
                    case 9:
                        nums = new int[7] { 1, 1, 0, 1, 1, 1, 1 };
                        break;
                }
                
            }
 
       private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime.Now("HH:MM");
            Invalidate();
        }
 
        }
        private void Form1_Load(object sender, EventArgs e)
        {
           
            
        }
 
        private void Form1_Load_1(object sender, EventArgs e)
        {
 
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2020, 16:51
Ответы с готовыми решениями:

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента когда часовая и минутная стелка...

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента когда часовая и минутная стелка...

Из секунд - часы, минуты и секунды. Из минут - часы, минуты
private void button4_Click(object sender, EventArgs e) { if (textBox3.Text == "") { ...

5
0 / 0 / 0
Регистрация: 07.01.2017
Сообщений: 30
11.03.2020, 16:56  [ТС]
Чтобы внести ясность, как это вообще выглядит)
Миниатюры
Семисегментные часы  
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
11.03.2020, 17:08
Приведённый Вами код вообще не соотносится с задачей кроме таймера, что за класс? для чего он Вам?

Ну а по времени всё легко: var currentTime = DateTime.Now("hh:mm"); m - именно маленькие ибо большая это месяц. ну а дальше используйте данные от currentTime для обновления где будете отображать

Добавлено через 6 минут
p.s. т.е. вы запоминаете время, потом его Вам нужно как понимаю разбить на часы и минуты, и отрисовать эти цифры
0
Эксперт .NET
 Аватар для Rius
13089 / 7649 / 1671
Регистрация: 25.05.2015
Сообщений: 23,291
Записей в блоге: 14
11.03.2020, 18:26
Цитата Сообщение от Scrym Посмотреть сообщение
мнение о такой реализации

Массивы тут нафиг не нужны. Достаточно расставить биты в байтах, их вот их собрать в один лишь массив. Как это делается в микроконтроллерах.
1
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
11.03.2020, 18:36
интересно откуда микроконтроллер будет время брать? при потере источника питания, каждый раз придется выставлять время заново. И для таких вещей проще с/с++ использовать.
0
Эксперт .NET
 Аватар для Rius
13089 / 7649 / 1671
Регистрация: 25.05.2015
Сообщений: 23,291
Записей в блоге: 14
11.03.2020, 19:18
Лучший ответ Сообщение было отмечено Scrym как решение

Решение

Цитата Сообщение от Immo Посмотреть сообщение
интересно откуда микроконтроллер будет время брать?
Оттуда же, откуда время берёт компьютер, который отключают от розетки.
Из RTC, питаемых от батарейки.
И вообще, МК тут не по этому поводу упомянуты. Не нужно собирать массивы для обозначений сегментов так, как это сделал ТС.
Цитата Сообщение от Immo Посмотреть сообщение
И для таких вещей проще с/с++ использовать.

Не по теме:

Летели два крокодила, один зеленый, другой на север. Сколько весит килограмм яблок, если заяц не курит?


C/C++ используется и для микроконтроллеров.

Добавлено через 30 минут
Scrym,
ловите архив
Вложения
Тип файла: 7z WindowsFormsAppClocks.7z (13.5 Кб, 68 просмотров)
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2020, 19:18
Помогаю со студенческими работами здесь

непрерывные часы
есть ли способ сделать банальные цифровые часы (в label или в textBox), которые шил бы непрерывно (с отсчётом секунд, минут и часов)? ...

Часы-гаджет
простите не знал куда написать, но проект этот создан на c# поэтому написал сюда Нашел исходник в интернете, но не как не могу...

Шахматные часы на си
Друзья, необходимо сделать приложение шахматные чаты. что бы было окно, на нем 2 циферблата электронных и 3 кнопки. 1 кнопка запуск...

Часы с будильником
Часы. Напишите программу, выводящую на экран аналоговые часы со стрелками часовой, минутной и секундной либо цифровые часы (выбор из...

Часы и будильник
Не работает будильник. Можете посмотреть проект и сказать что не так делаю?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru