|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.01.2010, 18:04 | #1 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
Проверка даты
Подскажите,нужно при нажатии на кнопку проверять введенную дату и сравнивать с настоящей,если меньше,то ошибка.
Но тут не все так просто,у меня на форме три Spinedit, в первый ввожу год,во второй месяц и в третий число.Далее нужно проверить с сегоднешним.Делаю так: трем переменным присваиваю sSpinEdit4.Value, далее перевожу в строку, делаю еще одну переменную и ей присваиваю вот такой формат: 24.01.2010 А вот как по условию проверить все это? Еще хотел сделать через DecodeDate , но так можно проверить только год, если он меньше чем сегодня,то ошибка. А как проверять месяц и число? Извеняюсь за неполную информацию(уже крыша едет) , дело в том что набирать нужно обязательно во всех трех Spinedit, но набирать можно не только сегоднешнюю дату а и каторая будет через месяц , например 07.02.2010 . Вот в чем вопрос,как определить что дата 07.02.2010 ,больше чем 24.01.2010 Если сравнивать только месяца: 02 больше чем 01 , то как быть с годом, вообщем ни как условие проверки не придумаю
За частые поиски был забанен во всех известных
поисковых системах! Последний раз редактировалось Михаил Юрьевич; 24.01.2010 в 18:51. Причина: дополнение |
24.01.2010, 19:07 | #2 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
Перевести строку в дату (StrToDate(str)) и просто сравнить:
if DT < Date then <ошибка> Тип TDateTime во внутреннем представлении просто число (чем больше число, тем более поздняя дата), а числа использовать в условиях сравнения не возбраняется. |
24.01.2010, 19:23 | #3 |
Форумчанин
Регистрация: 14.09.2008
Сообщений: 172
|
НУ сравнить равность сегодняшней и введенной не тяжело
Код:
Код:
Шипулин А. В.
|
24.01.2010, 19:27 | #4 |
Форумчанин
Регистрация: 14.09.2008
Сообщений: 172
|
А еще можно так сравнить слить дату, то есть сделать ее без точек, как то так (ситация со спин эдитами):
Код:
Шипулин А. В.
|
24.01.2010, 19:33 | #5 | |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
Цитата:
а ввели : 31.06.2009 Где больше,где меньше 31062009 и 24012010
За частые поиски был забанен во всех известных
поисковых системах! |
|
24.01.2010, 19:42 | #6 |
Форумчанин
Регистрация: 14.09.2008
Сообщений: 172
|
Во первых куда ввели? Продолждаю по спинам.
Код:
Шипулин А. В.
|
24.01.2010, 20:03 | #7 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
Извеняюсь,сразу не заметил что Вы воспользовались FormatDateTime и перевернули дату ,спасибо!
+
За частые поиски был забанен во всех известных
поисковых системах! |
24.01.2010, 20:12 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
А вообще правильный ответ дан в пост #2 Скандербег
Шульц, ага. так тоже можно. но зачем эти фокусы, когда даты банально можно сравнивать?! Последний раз редактировалось Serge_Bliznykov; 24.01.2010 в 20:16. |
24.01.2010, 20:20 | #9 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
Для большей ясности (может Михаил Юрьевич не обратил внимания):
Код:
|
24.01.2010, 20:25 | #10 |
Форумчанин
Регистрация: 14.09.2008
Сообщений: 172
|
Я просто предложил альтернативу А так, конечно Скандербег дал правильный ответ
Шипулин А. В.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Формат даты. | agregator | Microsoft Office Excel | 3 | 21.01.2011 14:55 |
Проверка даты. Firebird | artemavd | БД в Delphi | 10 | 18.10.2009 20:14 |
Даты | Sparky | БД в Delphi | 6 | 02.10.2009 09:48 |
ограничение даты | Alexi | Компоненты Delphi | 4 | 21.04.2009 13:09 |
Даты не даты | Nasya | Microsoft Office Excel | 3 | 22.08.2007 20:18 |