Функция EndOfADay в Delphi генерирует значение TDateTime, установленное на самый конец дня.
DateUtils unit
- function EndOfADay (const Year, Month, Day : Word) : TDateTime;
- function EndOfADay (const Year, DayOfYear : Word) : TDateTime;
Функция EndOfADay генерирует значение TDateTime, установленное на данный год, месяц и день со временем, установленным на 1 миллисекунду перед полуночью.
Версия 1
Позволяет определить отдельно Месяц (Month) и День (Day). Месяц должен быть между 1 (Январь) и 12 (Декабрь). День должен быть между 1 и 31, в зависимости от года и месяца.
Версия 2
Позволяет, вместо этого, определить Месяц (Month) и День (Day) как DayOfYear.
Предупреждение.
Там, где появляется ошибка в Delphi (как проверено автором, использующим Delphi, 7.0 Delphi 7.0 Professional build 4.453), где длинная версия синтаксиса неправильна используйте подпрограмму EndOfAMonth, чтобы вычислить конец дня.
Ошибки в значениях параметра дают EConvertError.
Функция EndOfADay: Установка даты на последнюю миллисекунду 20-го века – иллюстрация бага Delphi
var
mydate : TDateTime;
begin
myDate := EndOfADay(1999, 365);
// Гарантируем, что миллисекунды будут показаны
LongTimeFormat := 'hh:mm:ss.zzz';
ShowMessage('Конец 1999, используя короткий синтаксис = '+DateTimeToStr(myDate));
myDate := EndOfADay(1999, 12, 31);
// Гарантируем, что миллисекунды будут показаны
LongTimeFormat := 'hh:mm:ss.zzz';
ShowMessage('Конец 1999, используя длинный синтаксис = '+DateTimeToStr(myDate));
ShowMessage('ПРЕДУПРЕЖДЕНИЕ - вышеупомянутое значение неправильно');
end;
Результат
Конец 1999, используя короткий синтаксис = 31/12/1999 23:59:59.999
Конец 1999, используя длинный синтаксис = 30/01/2000 23:59:59.999
ПРЕДУПРЕЖДЕНИЕ - вышеупомянутое значение неправильно
Похожие функции, процедуры и команды
EndOfAMonth — генерация значения TDateTime, установленное на самый конец месяца.
