Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 47

Обновление даты и времени

07.08.2020, 09:22. Показов 696. Ответов 11
Метки c++, time (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Написал код, в котором реализовано отображение даты и времени. Проблема заключается в том, что время обновляется только если на него навести мышку. Как сделать,чтобы обновлялось само???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
char s[40];
        for (int i = 0; i<40; i++) s[i] = 0;
        struct tm *u;
        const time_t timer = time(NULL);
        u = localtime(&timer);// местное время
        int length = strftime(s, 40, "%H:%M:%S | %d-%m-%Y ", u);//формат времени
        switch (u->tm_wday)
            {
            case 0: strcpy(s + length, "| понедельник"); break;
            case 1: strcpy(s + length, "| вторник");     break;
            case 2: strcpy(s + length, "| среда");       break;
            case 3: strcpy(s + length, "| четверг");     break;
            case 4: strcpy(s + length, "| пятница");     break;
            case 5: strcpy(s + length, "| суббота");     break;
            case 6: strcpy(s + length, "| воскресенье"); break;
            }
 
        dc.DrawText(s, &Rect, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2020, 09:22
Ответы с готовыми решениями:

Программа должна работать до определенной даты у пользователя, независимо, что он выставит в настройках даты и времени
Добрый день, уважаемые! Уже сломал голову, но ничего не могу придумать. Дело вот в чем: есть программа (клиент обращений в поддержку),...

Обновление даты после спящего режима
Доброго времени суток!!! Пишу календарь. При загрузке в глобальную переменну вносится текущая дата. В теле таймера эта переменная...

Постоянный вывод и ежесекундное обновление текущей даты и времени
как осуществить? procedure TForm2.FormActivate(Sender: TObject); begin Edit1.Text:=DateTimeToStr(now); end; и при клике, но...

11
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
07.08.2020, 10:24
Цитата Сообщение от Nimfador Посмотреть сообщение
Написал код, в котором реализовано отображение даты и времени.
Где название фреймворка, Лебовски? Или ты хочешь сказать, что ты все на голых плюсах написал?
Цитата Сообщение от Nimfador Посмотреть сообщение
время обновляется только если на него навести мышку.
И ты выложил код замены текста. У тебя в чем проблема? В том что сам текст не отображается/отображается неправильно?
Цитата Сообщение от Nimfador Посмотреть сообщение
Как сделать,чтобы обновлялось само???
Самое первое, что мне приходит в голову: ты закинул этот код в неправильный обработчик события. Но это неточно, потому что я хз какой фреймворк ты юзал и есть ли в нем вообще система событий.
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 47
07.08.2020, 10:43  [ТС]
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
#include "StdAfx.h"
#include "CDate_Time.h"
#include "resource.h"
#include <windows.h>
#include <ctime>
 
void CDate_Time::Paint(CDC &dc, long layer)
{
    if (layer == L_Visual)
    {
        CRect Rect(CPoint(0, 0), GetSize(layer)); // Определение размера области
        CPen Pen_1;
        CBrush Br;
        Pen_1.CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); // Создание карандаша 1
        Br.CreateSolidBrush(RGB(190, 190, 190)); // Создание кисти
        //dc.SelectObject(&Br);
        dc.SelectObject(&Pen_1);
        dc.Rectangle(&Rect);
 
// Дата и время
            
        char s[40];
        for (int i = 0; i<40; i++) s[i] = 0;
        struct tm *u;
        const time_t timer = time(NULL);
        u = localtime(&timer);// местное время
        int length = strftime(s, 40, "%H:%M:%S | %d-%m-%Y ", u);//формат времени
        switch (u->tm_wday)
            {
            case 0: strcpy(s + length, "| понедельник"); break;
            case 1: strcpy(s + length, "| вторник");     break;
            case 2: strcpy(s + length, "| среда");       break;
            case 3: strcpy(s + length, "| четверг");     break;
            case 4: strcpy(s + length, "| пятница");     break;
            case 5: strcpy(s + length, "| суббота");     break;
            case 6: strcpy(s + length, "| воскресенье"); break;
            }
 
        dc.DrawText(s, &Rect, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
 
 
    }
}
Получается вот что. Время совпадает с системным, но оно не изменяется вместе с системным (не обновляется), только при наведении указателя мыши
Миниатюры
Обновление даты и времени  
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
07.08.2020, 10:59
Я не специалист, но мне интересно что это и зачем?
Цитата Сообщение от Nimfador Посмотреть сообщение
if (layer == L_Visual)
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 47
07.08.2020, 11:01  [ТС]
Это необходимо, так как я работаю в уже разработанной программе и там есть слои
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
07.08.2020, 12:45
Цитата Сообщение от Nimfador Посмотреть сообщение
так как я работаю в уже разработанной программе
Ну, похоже, что ошибка уровнем выше, потому что тут вроде кроме самой отрисовки всего одно условие.
Цитата Сообщение от Nimfador Посмотреть сообщение
и там есть слои
Я хз что это за слои. Возможно тебе стоит выбрать другой, посоветуйся с теми, кто писал эту программу.
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 47
07.08.2020, 14:18  [ТС]
Дело не в слоях это точно. Просто чего-то не хватает,чтобы время обновлялось
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
07.08.2020, 14:30
Цитата Сообщение от Nimfador Посмотреть сообщение
Просто чего-то не хватает,чтобы время обновлялось
Я уже писал выше: найди то, что триггерит перерисовку, по какому событию оно само триггерится и посмотри какие параметры передает в отрисовщик.
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
07.08.2020, 14:50
Цитата Сообщение от Nimfador Посмотреть сообщение
Просто чего-то не хватает,чтобы время обновлялось
Очевидно события таймера, по которому и перерисовывать.
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 47
07.08.2020, 18:10  [ТС]
Не подскажите как это реализовать?
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
07.08.2020, 18:24
Цитата Сообщение от Nimfador Посмотреть сообщение
Не подскажите как это реализовать?
https://www.tutorialspoint.com/mfc/mfc_timer.htm
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 47
10.08.2020, 07:27  [ТС]
Время также обновляется только при наведении указателем на него
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.08.2020, 07:27
Помогаю со студенческими работами здесь

Надо дописать!Ассемблер вывод системной даты,времени и даты ближайшего воскресенья
вот исходный код .Model Small .486p .Stack 100h .Data wNumOff DW 10 Dup(0) ;Смещение строки, где будет содержаться...

Вывод системной даты, времени и даты ближайшего воскресенья
вот исходный код выводит дату время .Model Small .486p .Stack 100h .Data wNumOff DW 10 Dup(0) ;Смещение строки, где...

Как поменять формат даты в Management Studio? Ошибка преобразования даты или времени из символьно
CREATE TABLE ( INTEGER NOT NULL IDENTITY(1, 1), VARCHAR(255) NULL, Date, VARCHAR(255) NOT NULL ); GO ...

Почему при записи даты и времени из формы в бд, к времени прибавляется час?
Здравствуйте, при записи даты и времени из формы в бд, к времени прибавляется час, почему так происходит?

Вывести на label обратный отсчёт времени до определенной даты и времени
Здравствуйте, необходимо вывести на lable обратный отсчёт от текущий даты до 05.09.2020 01:01, после это запустить отсчёт заново. ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru