Обычно, когда нам требуется получить текущую дату на Delphi, мы, сильно не задумываясь, используем очень знакомую нам функцию "Now": Label1.Caption:=datetostr(Now); |
В результате мы получим текущую дату, т.е. сегодняшнюю: 20.09.2013
А что нам делать, если требуется программно вывести только текущий день или месяц или год? А если необходимо рассчитать количество дней в году? Конечно, многие уже немного опытные новички сразу же прибегнут к функции copy и будут извлекать из полученной нами ранее строки Label1 первые два символа, как сегодняшний день, третий и четвертый - месяц и т.д. Согласитесь, это немного кропотливая работа, особенно, если еще и учитывать, что первые десять дней месяца имеют не два символа, а один (например: не 05.07.2007, а 5.07.2007).
Друзья мои, хватит загружать свою голову и давайте избегать подобные проблемы легко и просто!Предлагаю вам познакомиться со стандартным модулем DateUtils, который предоставляет множество функции для работы с датами. А именно: DayOfTheMonth | Дает день месяца для значения
TDateTime (ISO 8601) | DayOfTheWeek | Возвращает индекс дня недели для
значения TDateTime (ISO 8601) | DayOfTheYear | Выдает день года для значения
TDateTime (ISO 8601) | DaysBetween | Выдает целое число дней между 2
датами | DaysInAMonth | Выдает число дней в месяце | DaysInAYear | Выдает число дней в году | DaySpan | Выдает дробное число дней между
2 датами | EncodeDateTime | Формирует значение TDateTime из
значений времени и дня | EndOfADay | Генерирует значение TDateTime,
установленное на самый конец дня | EndOfAMonth | Генерация значения TDateTime,
установленное на самый конец месяца | IncDay | Приращивает переменную типа
TDateTime на + или - число дней | IncMillisecond | Приращивает переменную типа
TDateTime на + или - число миллисекунд | IncMinute | Приращивает переменную типа
TDateTime на + или - число минут. | IncSecond | Приращивает переменную типа
TDateTime на + или - число секунд | IncYear | Увеличивает TDateTime переменную
на количество лет | MonthOfTheYear | Выдает месяц года для
значения TDateTime | RecodeDate | Изменяет только дату переменной
TDateTime | RecodeTime | Изменяет только время переменной
TDateTime | Tomorrow | Возвращает дату завтрашнего дня | Yesterday | Выдает вчерашнюю дату |
Ну теперь в нашем случае поступаем следующим образом: 1. Подключаем модуль 2. Объявляем необходимые нам переменные var tday, tmonth, tyear: string; |
3. Присваиваем переменным соответствующие значения tday:=Variant(DayOf(now)); tmonth:=Variant(MonthOf(now)); tyear:=Variant(YearOf(now)); |
На этом пока все. Успехов в программировании!
Нравится
|