Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что-то я недомудрил с датой? [Delphi, Windows]


Baloo ©   (2004-07-16 03:21:00) 

Вот, допустим, кусочек кода:

begin                                                            
 if Now > Str2DateTimeFmt('dd.mm.yy','28.07.04') then          
 MsgOK('Сработало условие даты');                              
end.

  Почему-то условие срабатывает, если Now меньше, а не больше, чем 28 июля. Хотя календарь у меня в ногу со временем...
А вот если ставлю if Now <Str2DateTimeFmt('dd.mm.yy','28.07.04'), тогда мессага не появляется. Почему наоборот? Now - дабл, Str2DateTimeFmt - тоже вроде дабл. Дабл от большей даты меньше, чем от меньшей? Только не ржите, если что наивное сказал, а то когда будет архив форума, много будет лишней ржачки :-)


Baloo   (2004-07-26 07:25:00) [1]

Спасибо, теперь не пропаду. Большое спасибо


Vladimir Kladov   (2004-07-17 09:29:00) [2]

Сказали же: MM, а не mm. Легко проверить пошаговой отладкой, что получается.


IceDog   (2004-07-17 03:23:00) [3]

Такое бывает. По какой-то причине Delphi считает что надо сравнивать от обратного, например: есть "а" и "b", ставим a>b.
Мы рассуждаем так: "а" больше "b", а на самом деле надо рассуждать, что "b" меньше "a" и ставить знак наооборот.
Наверно я туманно объяснил и многим покажется что нет разницы, но на самом деле она есть. Почему так объяснить не берусь.
Похоже пример приведенны Baloo относиться к таким "казусам".


Rossa   (2004-07-16 10:34:00) [4]

Попробуй StrToDate(DateToStr(Now))


zx   (2004-07-16 09:57:00) [5]

Str2DateTimeFmt('dd.MM.yyyy','28.07.2004')


antip_a@rambler.ru   (2004-07-16 09:57:00) [6]

Возможно проблема в условии сравнения
Now и Str2DateTimeFmt('dd.mm.yy','28.07.04'),
т.к. Now кроме дня, с которым ты сравниваешь, содержит еще
и время.


Дмитрий Левченко   (2004-07-16 09:49:00) [7]

Проверь у тебя в системе разделитель даты "." или "/".


Наверх

Титульная страница Поиск, карта сайта Написать письмо