Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.014 c
6-1122966884
ZAV
2005-08-02 11:14
2005.11.27
Как при помощи IDFTP узнать дату изменения файла


3-1129630838
vinni2000
2005-10-18 14:20
2005.11.27
Работа с временной или виртуальной таблицей?


14-1130865514
YurikGL
2005-11-01 20:18
2005.11.27
USB - варежки


4-1127720516
DeadMeat
2005-09-26 11:41
2005.11.27
Синхронизация двух процессов


1-1130935984
BobbyDigital
2005-11-02 15:53
2005.11.27
Полосы прокрутки в Combobox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский