Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 20:20   #1
Wolworine
 
Регистрация: 29.10.2011
Сообщений: 4
По умолчанию Наступил ли новый день

Как в делфи узнать, наступил ли новый день, месяц, год?
Wolworine вне форума Ответить с цитированием
Старый 10.05.2012, 20:35   #2
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

всмысле? Что вы сделать хотите?
Dozent вне форума Ответить с цитированием
Старый 10.05.2012, 20:38   #3
Wolworine
 
Регистрация: 29.10.2011
Сообщений: 4
По умолчанию

Обнуление определенных данных должно происходить раз в месяц. Точнее при первом открытии программы в новом месяце. Как то можно это сделать?
Wolworine вне форума Ответить с цитированием
Старый 10.05.2012, 20:43   #4
C_R_E_S_C_H
Пользователь
 
Аватар для C_R_E_S_C_H
 
Регистрация: 02.01.2012
Сообщений: 34
По умолчанию

ну во первых чтобы узнать наступил ли новый день надо узнать старый пишеш куда нибудь (реестр, файл) дату дня
Код:
DateToStr(Date)
далее при каждом новом запуске программы читаешь текущую дату (той-же строчкой) а дальше или берешь . в дате за разделитель и парсиш от туда то что тебе нужно (число месяц год) или сравниваешь даты (если нужно отмечать каждый день запуски.
Код:
if Пиво=True then
ShowMessage('Пишем дальше');
Else ShowMessage('Да ну вас всех');
C_R_E_S_C_H вне форума Ответить с цитированием
Старый 10.05.2012, 20:45   #5
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Ну так записывайте куданить значение текушего месяца и при запуске программы ситывайте текушую дату и проверяйте если номер месяца больше на 1 записаной цифры значит обнуляем, ну или ешё проше, запоминаем текушую дату, так же при запуске считываем отнимаем, и смотрим сколько дней прошло... Работа с даными типа дата!
Dozent вне форума Ответить с цитированием
Старый 10.05.2012, 20:54   #6
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Задайтесь сначала вопросом, с какого момента это нужно узнать. Раз в месяц? Вот запустили вы прогу первый раз, она и запомнила время запуска, и при каждом след. запуске будет проверять текущее время - первое время запуска. Если больше или равно месяцу, то обнуление. Можно организовать файлом, или в реестре, как сказали тут.
"ковыряю изнутри" (с)

Последний раз редактировалось 3D Hunter; 10.05.2012 в 20:57.
3D Hunter вне форума Ответить с цитированием
Старый 10.05.2012, 22:49   #7
Yurchik
 
Регистрация: 10.05.2012
Сообщений: 6
По умолчанию

А если юзер изменил дату в системе, как тогда решить вопрос?
Yurchik вне форума Ответить с цитированием
Старый 10.05.2012, 23:01   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Yurchik Посмотреть сообщение
А если юзер изменил дату в системе, как тогда решить вопрос?
Если комп подключен к И-нету, можно спросить у тайм-сервера.
Если комп изолирован, в общем случае задача неразрешима.
s-andriano вне форума Ответить с цитированием
Старый 10.05.2012, 23:30   #9
Wolworine
 
Регистрация: 29.10.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Yurchik Посмотреть сообщение
А если юзер изменил дату в системе, как тогда решить вопрос?
Юзер не настолько прошареный, чтобы знать, как сменить дату.


А вообще вопрос решился файлом, в котором хранится старая дата входа.


Спасибо за советы)
Wolworine вне форума Ответить с цитированием
Старый 11.05.2012, 00:22   #10
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Wolworine

Как в делфи узнать, наступил ли новый день

Код:
program IsNewDay;
begin
    Sleep(24*3600*1000);
    Writeln('Наступил новый день');
end.

, месяц

Код:
program IsNewMonth;
begin
    for i := 1 to 30 do
       Sleep(24*3600*1000);
    Writeln('Наступил новый месяц');
end.

, год?

Код:
program IsNewYear;
begin
    for i := 1 to 365 do
       for j := 1 to 30 do
        Sleep(24*3600*1000);
    Writeln('Наступил новый год');
end.
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новай день - новый столбец Марк Охман БД в Delphi 2 31.10.2010 08:50
День программиста GonZaleZ Свободное общение 17 24.08.2010 23:12
Медведев установил новый праздник — День программиста SuBwooFer Свободное общение 15 13.09.2009 23:44
определить день недели по заданному числу (считать в месяце 30 дней и первый день месяца понедельник dan1991 Помощь студентам 1 01.03.2009 20:59
День Госфлага KORT Свободное общение 0 22.08.2007 10:43