Вниз
Скачать: CL | DM;

Можно ли програмно сравнить две даты?   Найти похожие ветки 

← →
KostR   (2005-11-12 16:10) [0]

Здравствуйте. Проблема в следующем. Мне надо, например, сегодняшнюю дату (12.11.2005) програмно сравнить с другими датами (10.05.2005, 10.07.2003 и т.п.). И если дата хотябы на два месяца младше сегодняшней ее нужно вывести в label1.caption. Как их сравнить? Если бы это были числа, то без проблем, а так нужна помощь специалиста. Спасибо.


← →
Sergey Masloff   (2005-11-12 16:24) [1]

А даты это и есть числа. Целая часть - день дробная - время.


← →
SergP ©   (2005-11-12 16:28) [2]

if trunc(date1)=trunc(date2) then ....


← →
Плохиш ©   (2005-11-12 16:29) [3]

MonthBetween


← →
Piter ©   (2005-11-12 16:30) [4]

Sergey Masloff   (12.11.05 16:24) [1]
А даты это и есть числа


когда они в формате TDateTime.

А для перевода текстовой даты в TDateTime есть разнообразнейшие функции, типа StrToDateTime (или как-то так).


← →
Savek   (2005-11-12 16:32) [5]

TDateTime это действительно число!
Переменные этого типа можно складывать, отнимать, +/- к ним константы

if Date-Date1>60 then Label.Caption:=DateToStr(Date1)

Хотя если учитывать кол-во дней в месяце, то надо подумать

А вообще ф-ии для работы с датами смотри в модуле DateUtils


← →
Udaff ©   (2005-11-12 21:23) [6]

для расшивровки TDate есть наскоко помню функции типа DecodeDate. для времени если нужно аналогичные тоже есть. справку в зубы и вперед


← →
Eraser ©   (2005-11-12 22:45) [7]


> KostR   (12.11.05 16:10)

1. Переводишь даты в TDateTime с пом. ф-ии EncodeDate или StrToDate.
2. [1]


← →
gdaujk ©   (2005-11-13 05:52) [8]

Savek   (12.11.05 16:32) [5]
Хотя если учитывать кол-во дней в месяце, то надо подумать

В TryEncodeDate, использующейся и в EncodeDate и в StrToDate, это учтено. Дата, насколько я понимаю, представляется как число дней от рождества Христова, с учётом високосных годов и разницы числа дней в месяцах.
Время переводится в милисекунды и делится на число миллисекунд в сутках. Получается дробная часть числа.

KostR   (12.11.05 16:10)
Мне надо, например, сегодняшнюю дату (12.11.2005) програмно сравнить с другими датами

В данном конкретном случае, по-моему, лучше ручками сравнить сначала годы, если они равны, сравнивать месяцы. Это лучше, чем использовать StrToDate и EncodeDate.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.036 c
2-1131218918
Trap
2005-11-05 22:28
2005.11.27
Стения сигнала с com-порта


2-1131461802
alex_1234
2005-11-08 17:56
2005.11.27
Опять туплю: left join ???


2-1131608134
Wano
2005-11-10 10:35
2005.11.27
Запрос Access не работает в delphi


14-1131116155
suharew
2005-11-04 17:55
2005.11.27
Куда делась вкладка Report в Delphi7


2-1131394631
JBL
2005-11-07 23:17
2005.11.27
количество записей (sql)




   Наверх