Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: 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 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
3-1129253591
fedor
2005-10-14 05:33
2005.11.27
Инсталляция вместе с драйверами InterBase


3-1129550690
grusty
2005-10-17 16:04
2005.11.27
ADODataSet.UpdateBatch(arAll) выдает ошибку...


3-1129397442
Piter
2005-10-15 21:30
2005.11.27
TIBDatabase - потокобезопасен?


6-1123567115
Shopot
2005-08-09 09:58
2005.11.27
Как передавать данные удаленному компу.


3-1129306926
suharew
2005-10-14 20:22
2005.11.27
Trim в IBX