Вниз
Скачать: 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.037 c
14-1130906774
Ксардас
2005-11-02 07:46
2005.11.27
Что-то не пойму в чем проблема....


14-1131458363
WondeRu
2005-11-08 16:59
2005.11.27
http://podgoretsky.com/ - куда делась вся литература?


14-1130765834
Cerberus
2005-10-31 16:37
2005.11.27
помогите выбрать телефон.


6-1123963055
NikNet
2005-08-13 23:57
2005.11.27
FTP Proxy у кого есть пример пожалуйста скиньте?


5-1112861007
TForm
2005-04-07 12:03
2005.11.27
Наследование свойств другого класса




   Наверх