![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что-то я недомудрил с датой? [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]Проверь у тебя в системе разделитель даты "." или "/".