Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сравнить даты :) / 6 сообщений из 6, страница 1 из 1
16.08.2003, 22:38
    #32238335
var_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить даты :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Привет.
Нужно проверить принедлежность даты типа xx.xx.xxxx к конкретному месяцу (янв..дек)
Данные хранятся в Access
вытаскиваю их и помещаю в Edit.Text
Сравниваю  даты при помощи if .. then
Проверяю принадлежит ли дета к январю:
if   01 . 01 . 2003  <= xx.xx.xxxx <=  31 . 01 . 2003 
В итоге получаю, что  01 . 09 . 2003  это январь :)
Далее сравниваю  01 . 09 . 2003  и  15 . 08 . 2003 
В итоге получаю, что  01 . 09 . 2003  <=  15 . 08 . 2003  :)
Получается сравниваются только первые числа:)
 --> Подскажите в чем дело?
 
 --> Как сравнивать даты?
 
Заранее спасибо.
...
Рейтинг: 0 / 0
16.08.2003, 23:34
    #32238345
NightSpider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить даты :)
function MonthOf(const AValue: TDateTime): Word; - значения от 1 до 12
+
function StrToDate(const S: string): TDateTime;
=
if MonthOf(StrToDate(Edit.Text)) = 1 then
begin
...
end;
...
Рейтинг: 0 / 0
18.08.2003, 02:35
    #32238492
Skleroz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить даты :)
Здесь
...
Рейтинг: 0 / 0
18.08.2003, 02:39
    #32238493
Skleroz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить даты :)
- Это к вопросу о формате даты. Для проверки принадлежности к конкретному месяцу используй SQL-функцию DatePart
...
Рейтинг: 0 / 0
18.08.2003, 04:00
    #32238501
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить даты :)
а в запросе нельзя сразу выбрать нужные даты?
...
Рейтинг: 0 / 0
18.08.2003, 07:39
    #32238528
Дмитрий Мыльников
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить даты :)
Во-первых, вы сравниваете не даты, а текстовые строки! :)
Поэтому результат получаете соврешенно правильный.

01.01.2003 < 01.09.2003 < 31.01.2003

Строки у нас сравниваются посимвольно от начала к концу строки. Так что 31 всяко больше 01 :) Ok?

Для сравнения дат их желательно сравнивать в исходном формате (до преобразования в строку), либо из символьного переводить в TDateTime с помощью функции StrToDate, StrToTime или StrToDateTime
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сравнить даты :) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]