Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизМожно ли програмно сравнить две даты? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.016 c