DaysBetween — Функция Delphi


Типы, функции и процедуры Delphi для работы с датой и временем.

Содержание:


Функции и процедуры Delphi для работы с датой и временем.


Тип TDateTime.


Тип TTimeStamp.


Тип TSQLTimeStamp.


Функции и процедуры Delphi для работы с датой и временем.


Таблица стандартных процедур и функций для работы с датой и временем

Значения символических констант для обозначения дней недели в соответствии с ISO 8601. Используйте эти константы для работы с функциями, работающими в соответствии со стандартом ISO 8601 (функции из модуля DateUtils).

Внимание: Не используйте эти константы с функцией DayOfWeek, которая трактует Воскресение (Sunday) как первый день недели.

Возвращает день недели из значения TDateTime. Возвращаемое функцией значение находится в промежутке между 1 и 7, где 1 соответствует Понедельнику (Monday), а 7 — Воскресение (Sunday).

Внимание: Значения DayOfTheWeek соответствуют ISO 8601 (где Понедельник (Monday) является первым днем недели). Если хотите чтобы первым днем недели считалось Воскресение (Sunday) используйте функцию DayOfWeek вместо функции DayOfTheWeek.

Совет: Чтобы сделать возвращаемые значения более читабельными, используйте константы Day of week.

Возвращает день недели из значения TDateTime. Возвращаемое функцией значение находится в промежутке между 1 и 7, где Воскресение (Sunday) является первым днем недели, а Суббота (Saturday) — седьмым.

Внимание: Значения DayOfWeek не соответствуют ISO 8601 (где Понедельник (Monday) является первым днем недели). Если хотите чтобы первым днем недели считался Понедельник (Monday) используйте функцию DayOfTheWeek вместо функции DayOfWeek.

Наименование Вид
модуль
Описание
CheckSqlTimeStamp процедура
SqlTimSt
Проверяет соответствует ли значение TSQLTimeStamp правильной дате и времени.
CompareDate функция
DateUtils
Сравнивает два значения TDateTime между собой по значению даты.
CompareDateTime функция
DateUtils
Сравнивает два значения TDateTime между собой.
CompareTime функция
DateUtils
Сравнивает два значения TDateTime между собой по значению времени.
CurrentYear функция
SysUtils
Возвращает текущий год.
Date функция
SysUtils
Возвращает текущую дату.
DateDelta константа
SysUtils
Определяет различие между значениями TDateTime и TTimeStamp.
DateOf функция
DateUtils
«Вырезает» значение времени из TDateTime (устанавливает значение времени в 0, что означает полночь).
DateTimeToFileDate функция
SysUtils
Конвертирует объект TDateTime в формат времени операционной системы.
DateTimeToSQLTimeStamp функция
SqlTimSt
Конвертирует значение TDateTime в TSQLTimeStamp.
DateTimeToStr функция
SysUtils
Конвертирует значение TDateTime в строку.
DateTimeToString процедура
SysUtils
Конвертирует значение TDateTime в строку, используя указаный формат строки.
DateTimeToSystemTime процедура
SysUtils
Конвертирует значение TDateTime в системное время Win32 API.
DateTimeToTimeStamp функция
SysUtils
Конвертирует значение TDateTime в соответствующее значение TTimeStamp.
DateToStr функция
SysUtils
Конвертирует значение даты из TDateTime в строку.
Day of week константы
DateUtils
DayOf функция
DateUtils
Возвращает день месяца из значения TDateTime. Возвращаемое функцией значение находится в промежутке между 1 и 31.
DayOfTheMonth функция
DateUtils
Возвращает день месяца из значения TDateTime. Возвращаемое функцией значение находится в промежутке между 1 и 31.
DayOfTheWeek функция
DateUtils
DayOfTheYear функция
DateUtils
Возвращает количество дней между значением, указаным в TDateTime и 31 Декабря предыдущего года.
DayOfWeek функция
SysUtils
DaysBetween функция
DateUtils
Возвращает количество полных дней из промежутка времени, заданного двумя значениями TDateTime.
DaysInAMonth функция
DateUtils
Возвращает количество дней в указаном месяце указаного года.
DaysInAYear функция
DateUtils
Возвращает количество дней в указаном году.
DaysInMonth функция
DateUtils
Возвращает количество дней в месяце, заданом в значении TDateTime.
DaysInYear функция
DateUtils
Возвращает количество дней в году, заданом в значении TDateTime.
DaySpan функция
DateUtils
Возвращает количество дней, включая дробную часть, из промежутка времени, заданного двумя значениями TDateTime.
DecodeDate процедура
SysUtils
Возвращает значения Год, Месяц, День для значения TDateTime.
DecodeDateDay процедура
DateUtils
Возвращает год и день года для значения, указаного в TDateTime.
DecodeDateFully функция
SysUtils
Возвращает значения Год, Месяц, День, День_Недели для значения TDateTime.
DecodeDateMonthWeek процедура
DateUtils
Возвращает значения Год, Месяц, Неделя_Месяца, День_Недели для значения TDateTime.
DecodeDateTime процедура
DateUtils
Возвращает значения Год, Месяц, День, Час, Минута, Секунда, Милисекунда для значения TDateTime.
DecodeDateWeek процедура
DateUtils
Возвращает значения Год, Неделя_Года, День_Недели для значения TDateTime.
DecodeDayOfWeekInMonth процедура
DateUtils
Для заданного значения TDateTime возвращает Год, Месяц, День_Недели и Число_Дней_в_Этой_Неделе_для_Этого_Месяца.
DecodeTime процедура
SysUtils
Разбивает значение TDateTime на часы, минуты, секунды и милисекунды.
EncodeDate функция
SysUtils
Возвращает значение TDateTime, заданое как Год, Месяц, День.
EncodeDateDay функция
DateUtils
Возвращает значение TDateTime, заданое как указаный день указаного года.
EncodeDateMonthWeek функция
DateUtils
Возвращает значение TDateTime, заданое как указаный день указаной недели в указаном месяце и году.
EncodeDateTime функция
DateUtils
Возвращает значение TDateTime, заданое как Год, Месяц, День, Час, Секунда, Милисекунда.
EncodeDateWeek функция
DateUtils
Возвращает значение TDateTime, заданое как указаный день указаной недели в указаном году.
EncodeDayOfWeekInMonth функция
DateUtils
Возвращает значение TDateTime, заданое как положение дня недели в указаном месяце и году.
EncodeTime функция
SysUtils
Возвращает значение TDateTime, заданое как часы, минуты, секунды и милисекунды.
EndOfADay функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду указаного дня.
EndOfAMonth функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду последнего дня указаного месяца.
EndOfAWeek функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду последнего дня указаной недели.
EndOfAYear функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду последнего дня указаного года.
EndOfTheDay функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду дня, указаного в TDateTime.
EndOfTheMonth функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду последнего дня месяца, указаного в TDateTime.
EndOfTheWeek функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду последнего дня недели, указаной в TDateTime.
EndOfTheYear функция
DateUtils
Возвращает значение TDateTime которое представляет последнюю милисекнду последнего дня года, указаного в TDateTime.
FormatDateTime функция
SysUtils
Возвращает значение TDateTime в виде форматной строки. Если форматная строка не задана, то принимается та, которая основана на текущей локализации системы.
HourOf функция
DateUtils
Возвращает час дня, из значения TDateTime.
HourOfTheDay функция
DateUtils
Возвращает час дня, из значения TDateTime.
HourOfTheMonth функция
DateUtils
Возвращает количество часов между указаным в значении TDateTime и 12:00 AM первого дня месяца.
HourOfTheWeek функция
DateUtils
Возвращает количество часов между указаным в значении TDateTime и 12:00 AM первого дня недели.
HourOfTheYear функция
DateUtils
Возвращает количество часов между указаным в значении TDateTime и 12:00 AM первого дня года.
HoursBetween функция
DateUtils
Возвращает количество полных часов между двумя значениями TDateTime.
HourSpan функция
DateUtils
Возвращает количество часов, включая дробную часть, между двумя значениями TDateTime.
IncAMonth процедура
SysUtils
Увеличивает дату на один месяц.
IncDay функция
DateUtils
Возвращает дату, сдвинутую на указаное число дней.
IncHour функция
DateUtils
Возвращает дату/время, сдвинутую на указаное число часов.
IncMilliSecond функция
DateUtils
Возвращает дату/время, сдвинутую на указаное число милисекунд.
IncMinute функция
DateUtils
Возвращает дату/время, сдвинутую на указаное число минут.
IncMonth функция
SysUtils
Возвращает дату, сдвинутую на указаное число месяцев.
IncSecond функция
DateUtils
Возвращает дату/время, сдвинутую на указаное число секунд.
IncWeek функция
DateUtils
Возвращает дату, сдвинутую на указаное число недель.
IncYear функция
DateUtils
Возвращает дату, сдвинутую на указаное количество лет.
IsInLeapYear функция
DateUtils
Показывает, принадлежит ли значение, указаное в TDateTime, високосному году.
IsLeapYear функция
SysUtils
Показывает, является ли указаный год високосным.
IsPM функция
DateUtils
Показывает, принадлежит ли значение времени, указаное в TDateTime, второй половине дня .
IsSameDay функция
DateUtils
Показывает, принадлежит ли значение, указаное в TDateTime, заданой дате.
IsToday функция
DateUtils
Показывает, принадлежит ли значение, указаное в TDateTime, текущей дате.
IsValidDate функция
DateUtils
Проверяет, являются ли указаные год, месяц и день допустимой датой.
IsValidDateDay функция
DateUtils
Проверяет, являются ли указаные год и день года допустимой датой.
IsValidDateMonthWeek функция
DateUtils
Проверяет, являются ли указаные год, месяц, неделя месяца и день недели допустимой датой.
IsValidDateTime функция
DateUtils
Проверяет, являются ли указаные год, месяц, день, час, минута, секунда и милисекунда допустимыми значениями даты и времени.
IsValidDateWeek функция
DateUtils
Проверяет, являются ли указаные год, неделя года и день недели допустимой датой.
IsValidTime функция
DateUtils
Проверяет, являются ли указаные час, минута, секунда и милисекунда допустимыми значениями даты и времени.
MilliSecondOf функция
DateUtils
Возвращает милисекунды из значения TDateTime.
MilliSecondOfTheDay функция
DateUtils
Возвращает количество милисекунд, прошедшее между значением указаным в TDateTime и началом этого самого дня.
MilliSecondOfTheHour функция
DateUtils
Возвращает количество милисекунд, прошедшее между значением указаным в TDateTime и началом этого самого часа.
MilliSecondOfTheMinute функция
DateUtils
Возвращает количество милисекунд, прошедшее между значением указаным в TDateTime и началом этой самой минуты.
MilliSecondOfTheMonth функция
DateUtils
Возвращает количество милисекунд, прошедшее между значением указаным в TDateTime и началом месяца.
MilliSecondOfTheSecond функция
DateUtils
Возвращает милисекунды из значения TDateTime.
MilliSecondOfTheWeek функция
DateUtils
Возвращает количество милисекунд, прошедшее между значением указаным в TDateTime и 12:00:00:00 AM первого дня недели.
MilliSecondOfTheYear функция
DateUtils
Возвращает количество милисекунд, прошедшее между значением указаным в TDateTime и 12:00:00:00 AM первого дня года.
MilliSecondsBetween функция
DateUtils
Возвращает количество милисекунд между двумя значениями TDateTime.
MilliSecondSpan функция
DateUtils
Возвращает количество милисекунд между двумя значениями TDateTime. Но в качестве результата вместо целого типа испльзуется число с плавающей точкой.
MinuteOf функция
DateUtils
Возвращает минуты из значения TDateTime.
MinuteOfTheDay функция
DateUtils
Возвращает количество минут между значением указаным в TDateTime и 12:00 AM того же дня.
MinuteOfTheHour функция
DateUtils
Возвращает количество минут, прошедшее между значением указаным в TDateTime и началом этого самого часа.
MinuteOfTheMonth функция
DateUtils
Возвращает количество минут, прошедшее между значением указаным в TDateTime и 12:00 AM первого дня месяца.
MinuteOfTheWeek функция
DateUtils
Возвращает количество минут, прошедшее между значением указаным в TDateTime и 12:00 AM первого дня недели.
MinuteOfTheYear функция
DateUtils
Возвращает количество минут, прошедшее между значением указаным в TDateTime и 12:00 AM первого дня года.
MinutesBetween функция
DateUtils
Возвращает количество полных минут между двумя значениями TDateTime.
MinuteSpan функция
DateUtils
Возвращает количество минут, включая дробную часть, между двумя значениями TDateTime.
MonthOf функция
DateUtils
Возвращает месяц года из значения TDateTime.
MonthOfTheYear функция
DateUtils
Возвращает месяц года из значения TDateTime.
MonthsBetween функция
DateUtils
Возвращает количество полных месяцев между двумя значениями TDateTime.
MonthSpan функция
DateUtils
Возвращает количество месяцев, включая дробную часть, между двумя значениями TDateTime.
MSecsToTimeStamp функция
SysUtils
Конвертирует указаное количество милисекунд в значение TTimeStamp.
Now функция
SysUtils
Возвращает текущие дату и время.
NthDayOfWeek функция
DateUtils
Возвращает сколько дней, с таким же порядковым номером дня недели, было в текущем месяце, представленом значением TDateTime.
NullSQLTimeStamp константа
SqlTimSt
Значение NULL для TSQLTimeStamp.
OneHour Constant;
OneMillisecond Constant;
OneMinute Constant;
OneSecond Constant
константы
DateUtils
Обратные константы времени в модуле Delphi.
RecodeDate функция
DateUtils
Меняет в TDateTime значение даты на новые значения Год, Месяц, День. В случае неудачи вызывает исключение EConvertError.
RecodeDateTime функция
DateUtils
Выборочно изменяет в TDateTime значения Год, Месяц, День, Час, Секунда, Милисекунда на заданые. В случае неудачи вызывает исключение EConvertError.
RecodeDay функция
DateUtils
Меняет значение День месяца в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
RecodeHour функция
DateUtils
Меняет значение Час дня в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
RecodeMilliSecond функция
DateUtils
Меняет значение Милисекунда в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
RecodeMinute функция
DateUtils
Меняет значение Минута часа в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
RecodeMonth функция
DateUtils
Меняет значение Месяц года в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
RecodeSecond функция
DateUtils
Меняет значение Секунда часа в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
RecodeTime функция
DateUtils
Меняет в TDateTime значение времени на новые значения Час, Минута, Секунда, Милисекунда. В случае неудачи вызывает исключение EConvertError.
RecodeYear функция
DateUtils
Меняет значение Год в TDateTime на заданое. В случае неудачи вызывает исключение EConvertError.
ReplaceDate процедура
SysUtils
Заменяет значение даты в TDateTime на заданое.
ReplaceTime процедура
SysUtils
Заменяет значение времени в TDateTime на заданое.
SameDate функция
DateUtils
Показывает, представляют ли два значения TDateTime тот же самый год, месяц и день.
SameDateTime функция
DateUtils
Показывает, представляют ли два значения TDateTime те же самые год, месяц, день, час, секунда, милисекунда.
SameTime функция
DateUtils
Показывает, совпадают ли значения времени в двух значениях TDateTime.
SecondOf функция
DateUtils
Возвращает количество секунд минуты из значения TDateTime.
SecondOfTheDay функция
DateUtils
Возвращает количество секунд между значением указаным в TDateTime и 12:00:00 AM того же самого дня.
SecondOfTheHour функция
DateUtils
Возвращает количество секунд между значением указаным в TDateTime и началом того же самого часа.
SecondOfTheMinute функция
DateUtils
Возвращает количество секунд между значением указаным в TDateTime и началом той же самой минуты.
SecondOfTheMonth функция
DateUtils
Возвращает количество секунд между значением указаным в TDateTime и 12:00:00 AM первого дня месяца.
SecondOfTheWeek функция
DateUtils
Возвращает количество секунд между значением указаным в TDateTime и 12:00:00 AM первого дня недели.
SecondOfTheYear функция
DateUtils
Возвращает количество секунд между значением указаным в TDateTime и 12:00:00 AM первого дня года.
SecondsBetween функция
DateUtils
Возвращает количество секунд между двумя значениями TDateTime.
SecondSpan функция
DateUtils
Возвращает количество секунд, включая дробную часть, между двумя значениями TDateTime.
SQLDayOfWeek функция
SqlTimSt
Возвращает день недели из значения TSQLTimeStamp. Возвращаемое функцией значение находится в промежутке между 1 и 7, где Воскресение (Sunday) является первым днем недели, а Суббота (Saturday) — седьмым.
SQLTimeStampToDateTime функция
SqlTimSt
Конвертирует значение TSQLTimeStamp в TDateTime.
SQLTimeStampToStr функция
SqlTimSt
Конвертирует значение TSQLTimeStamp в строку.
StartOfADay функция
DateUtils
Возвращает значение TDateTime которое представляет 12:00:00:00 AM указаного дня.
StartOfAMonth функция
DateUtils
Возвращает значение TDateTime которое представляет 12:00:00:00 AM первого дня указаного месяца.
StartOfAWeek функция
DateUtils
Возвращает значение TDateTime которое представляет первый момент указаного дня указаной недели.
StartOfAYear функция
DateUtils
Возвращает значение TDateTime которое представляет первый момент первого дня указаного года.
StartOfTheDay функция
DateUtils
Возвращает значение TDateTime которое представляет 12:00:00:00 AM дня, заданого значением TDateTime.
StartOfTheMonth функция
DateUtils
Возвращает значение TDateTime которое представляет 12:00:00:00 AM первого дня месяца, заданого значением TDateTime.
StartOfTheWeek функция
DateUtils
Возвращает значение TDateTime которое представляет 12:00:00:00 AM первого дня недели, заданой значением TDateTime.
StartOfTheYear функция DateUtils Возвращает значение TDateTime которое представляет 12:00:00:00 AM первого дня года, заданого значением TDateTime.
StrToDate функция
SysUtils
Конвертирует строку с датой в TDateTime. В случае неудачи вызывает исключение EConvertError.
StrToDateDef функция
SysUtils
Конвертирует строку с датой в TDateTime со значением по умолчанию в случае ошибки.
StrToDateTime функция
SysUtils
Конвертирует строку в значение TDateTime. В случае неудачи вызывает исключение EConvertError.
StrToDateTimeDef функция
SysUtils
Конвертирует строку в значение TDateTime со значением по умолчанию в случае ошибки.
StrToSQLTimeStamp функция
SqlTimSt
Конвертирует строку в значение TSQLTimeStamp. В случае неудачи вызывает исключение EConvertError.
StrToTime функция
SysUtils
Конвертирует строку со временем в значение TDateTime. В случае неудачи вызывает исключение EConvertError.
StrToTimeDef функция
SysUtils
Конвертирует строку со временем в значение TDateTime со значением по умолчанию в случае ошибки.
SystemTimeToDateTime функция
SysUtils
Конвертирует значение системного времени в значение TDateTime.
Time модульные константы
SysUtils
Значения констант для вычисления времени.
Time,
GetTime
функции
SysUtils
Возвращают текущее время.
TimeOf функция
DateUtils
Убирает значение даты из значения TDateTime.
TimeStampToDateTime функция
SysUtils
Конвертирует значение TTimeStamp в соответствующее значение TDateTime.
TimeStampToMSecs функция
SysUtils
Конвертирует значение TTimeStamp в TTimeStamp в абсолютное число милисекунд.
TimeToStr функция
SysUtils
Конвертирует значение времени из TDateTime в строку.
Today функция
DateUtils
Возвращает значение TDateTime, представляющее текущую дату.
Tomorrow функция
DateUtils
Возвращает значение TDateTime, представляющее следующий день.
TryEncodeDate функция
SysUtils
Создает значение TDateTime, предсталяющее указаный Год, Месяц, День. В случае неудачи возвращает False.
TryEncodeDateDay функция
DateUtils
Вычисляет значение TDateTime которое представляет указаный день для указаного года. В случае неудачи возвращает False.
TryEncodeDateMonthWeek функция
DateUtils
Вычисляет значение TDateTime которое представляет указаный день указаной недели в указаном месяце и году. В случае неудачи возвращает False.
TryEncodeDateTime функция
DateUtils
Вычисляет значение TDateTime которое представляет указаные год, месяц, день, час, минуту, секунду и милисекунду. В случае неудачи возвращает False.
TryEncodeDateWeek функция
DateUtils
Вычисляет значение TDateTime которое представляет указаный день указаной недели в указаном году. В случае неудачи возвращает False.
TryEncodeDayOfWeekInMonth функция
DateUtils
Вычисляет значение TDateTime которое представляет указаный день недели в указаном месяце и году. В случае неудачи возвращает False.
TryEncodeTime функция
SysUtils
Создает значение TDateTime для заданых значений Час, Минута, Секунда и Милисекунда. В случае неудачи возвращает False.
TryRecodeDateTime функция
DateUtils
Выборочно меняет значения Год, Месяц, День, Час, Секунда, Милисекунда в указаном TDateTime. В случае неудачи возвращает False.
TryStrToDate функция
SysUtils
Конвертирует строку с датой в TDateTime. В случае неудачи возвращает False.
TryStrToDateTime функция
SysUtils
Конвертирует строку в значение TDateTime. В случае неудачи возвращает False.
TryStrToSQLTimeStamp функция
SqlTimSt
Конвертирует строку в значение TSQLTimeStamp. В случае неудачи возвращает False.
TryStrToTime функция
SysUtils
Конвертирует строку со временем в значение TDateTime. В случае неудачи возвращает False.
UnixDateDelta константа
SysUtils
Определяет разницу между значениями TDateTime и TIME_T. Тип TIME_T используется в системах Unix и Lnux, а так же в стандартных библиотеках C.
WeekOf функция
DateUtils
Возвращает неделю года из значения TDateTime.
WeekOfTheMonth функция
DateUtils
Возвращает неделю месяца из значения TDateTime.
WeekOfTheYear функция
DateUtils
Возвращает неделю года из значения TDateTime.
WeeksBetween функция
DateUtils
Возвращает количество полных недель между двумя значениями TDateTime.
WeeksInAYear функция
DateUtils
Возвращает количество недель в указаном году.
WeeksInYear функция
DateUtils
Возвращает количество недель в году из значения TDateTime.
WeekSpan функция
DateUtils
Возвращает количество недель, включая дробную часть, между двумя значениями TDateTime.
WithinPastDays функция
DateUtils
Показывает, находятся ли две даты в заданом промежутке дней относительно друг друга.
WithinPastHours функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке часов относительно друг друга.
WithinPastMilliSeconds функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке милисекунд относительно друг друга.
WithinPastMinutes функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке минут относительно друг друга.
WithinPastMonths функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке месяцев относительно друг друга.
WithinPastSeconds функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке секунд относительно друг друга.
WithinPastWeeks функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке недель относительно друг друга.
WithinPastYears функция
DateUtils
Показывает, находятся ли два значения даты/времени в заданом промежутке лет относительно друг друга.
YearOf функция
DateUtils
Возвращает Год из значения TDateTime.
YearsBetween функция
DateUtils
Возвращает приблизительное количество лет между двумя значениями TDateTime.
YearSpan функция
DateUtils
Возвращает приблизительное количество лет, включая дробную часть, между двумя значениями TDateTime.
Yesterday функция
DateUtils
Возвращает значение TDateTime которое соответствует предыдущему дню.

Содержание

Тип TDateTime.

Тип TDateTime — это основной тип в Delphi для работы с датой и временем. Он является числом с плавающей запятой, целая часть которого содержит число дней, отсчитанное от некоторого начала календаря, а дробная часть равна части 24-часового дня, т.е. характеризует время и не относится к дате. Для 32-разрядных версий Delphi за начало календаря принята дата 12/30/1899, 12 часов.

Ниже приведены несколько примеров значения TDateTime и соответсвующие им дата и время:

12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am

Чтобы найти количество дней, включая дробную часть, между двумя датами, просто вычтите два значения, если только одно из них не является отрицательным. Аналогично, если значение TDateTime не отрицательное, то, чтобы увеличить значение даты и времени на определенное кличество дней, включая дробную часть, достаточно прибавить количество дней, включая дробную часть, к значению TDateTime.

Когда обрабатываются отрицательные значения TDateTimes, то вычисление дробной части производится отдельно. Дробная часть отражает часть 24-часового дня не зависимо от знака значения TDateTime. Например, 6:00 am on 12/29/1899 это –1.25, а неt –1 + 0.25, что составило бы –0.75. Значений TDateTime между –1 и 0 не существует. Cовет: В модулях SysUtils и DateUtils для работы с датой и временем имеется большое количество процедур и функций на все случаи жизни. Не заморачивайтесь с обственными вычислениями, не изобретайте велосипед, а пользуйтесь уже готовыми наработками разработчиков Delphi. (См. Функции и процедуры Delphi для работы с датой и временем.) Оно надежнее.

Примечание: В Delphi 1 за начало отсчета принят год 1, т.е. для перевода даты Delphi 1 в дату последующих версий Delphi надо вычесть из даты число 693594.

Содержание

Тип TTimeStamp.

TTimeStamp представляет значения дата и время.

Используйте TTimeStamp если требуется повышеная точность представления значения времени в знчениях дата/время. Если нет необходимости сохранять значение времени с точностью до милисекунд, используйте более компактное TDateTime. Если необходима еще большая точность, то используйте TSQLTimeStamp (но НЕ назначайте его типом Variant).

Поле Time field показывает количество милисекунд, прошедших с полуночи.

Поле Data показывает число календарных дней от начала календаря (число дней с 1/1/0001 плюс один).

Содержание

Тип TSQLTimeStamp.

TSQLTimeStamp представляет значения даты и времени с очень высокой точностью.

Драйвера баз данных dbExpress используют TSQLTimeStamp когда работают со значениями даты и времени.

  • Year определяет год от 1 до 9999.
  • Month определяет месяц от 1 до 12.
  • Day определяет день месяца, от 1 до 28, 29, 30, или 31, в зависимости от значения Month.
  • Hour определяет час от 0 до 23.
  • Minute и Second могут колебаться от 0 до 59.
  • Fractions определяет милисекунды от 0 до 999.

Используя функцию VarSQLTimeStampCreate, Вы можете создать тип Variant который представляет значение TSQLTimeStamp. Фактически, простейший путь манипулирования значениями SQLTimeStamp это создать подобный Variant и использовать встроеные операторы, обеспечивающие работу с Variant.

Проверка на вхождение в диапазон

Delphi , Синтаксис , Типы и Переменные

Статья Проверка на вхождение в диапазон раздела Синтаксис Типы и Переменные может быть полезна для разработчиков на Delphi и FreePascal.

Комментарии и вопросы

Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.

DaysBetween — Функция Delphi

hi
how can i know the number of days between two dates?i tried «duration.value := date1.value — date2.value» and it gives an error. ‘duration = integer field’. date1/2 are datetime fields’.

if you are using delphi 7 or above

make uses of DATEUTILS

and use the next function

duration.AsInteger := DAYSBETWEEN (date1.AsDateTime, date2.AsDateTime)

it returns that you need

if you are using delphi 5 then do it

duration.AsInteger := Trunc(date1.AsDateTime — date2.AsDateTime)

procedure TForm1.Button1Click(Sender: TObject);
var i: Extended;
d1, d2: TDateTime;
c1, c2, c3, c4: String;
begin
d1 := StrToDateTime( ’04/10/2008 10:30 AM’);
d2 := StrToDateTime( ’04/12/2008 2:10 PM’);

c1 := ‘Integer part shows duration in Days (‘;
c2 := ‘)’ + Chr(13)+Chr(10)+’Decimal part shows duration in Hr (‘;
c3 := ‘) and Min (‘;
c4 := ‘)’;
i := d2 — d1;
ShowMessage(
c1 + IntToStr( Trunc(i)) +
c2 + IntToStr( Trunc((i-Trunc(i))*24)) +
c3 + IntToStr( Trunc(((i-Trunc(i))*24-Trunc((i-Trunc(i))*24))*60)) +
c4);
end;

[DELPHI]duration.AsInteger := Trunc(date1.AsDateTime — date2.AsDateTime)[/DELPHI]

Should work fine with Delphi 3

Then the last suggestion (for Delphi 5) should work anyway .

Objective reality is a delirium caused by lack of alcohol in blood.
There is no place like 127.0.0.1

DaysBetween Routine

Description

(Please provide a description in your own words. It is illegal to use the wording from the Delphi Help.)

Technical Comments

(Known issues / Documentation clarifications / Things to be aware of)

Examples

(Please provide links to articles/source code that show how to use this item.)

See Also

(Please provide links to items specifically related to this item.)

User Comments/Tips

(Please leave your name with your comment.)

daysbetween разница между двумя датами в сетке

Я пытаюсь вычислить daysbetween разница между двумя датами в сетке. Этот вид’a работает, но производит сначала странный результат: это событие Oncalculate полей таблицы TEMP:

BIV_OD и BIV_DO — это поля даты (например. Date_From — Date-to) Когда я выбираю первую дату в сетке (BIV_OD), мое поле DAYS сначала показывает 40731 (??) Затем, когда я вводим вторую дату все работает нормально. Почему это?

Это то, что вы просили.

Delphi хранит даты как количество дней с 31/12/1899, поэтому, когда вы пишете первое свидание, которое вы делаете 40731 (количество дней с 31/12/1899), — 0, так как вы еще не указали вторую дату.

Решение было бы не вычислять поле, если не будут заполнены обе даты.

Хотя я бы установил столбец сетки для типа данных integer.

DaysBetween — Функция Delphi

Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1

Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 1
Всего: 7

DaysBetween function
Returns the number of whole days between two specified TDateTime values.

Category: date/time routines

function DaysBetween(const ANow, AThen: TDateTime): Integer;

Description: Call DaysBetween to obtain the difference, in days, between two TDateTime values.

DaysBetween counts only whole days that have elapsed. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.

Dimich
Дата 28.10.2004, 14:11 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2

Marriage
Дата 28.10.2004, 18:46 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64

[/B], ‘); return false;» title=»Вставить ник в поле ввода»>
Дата 28.10.2004, 18:56 (ссылка) | (нет голосов) Загрузка . ‘, ‘28.10.2004, 18:56’, 244433);»>
Google
Дата 11.11.2020, 23:22 (ссылка)

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.


Delphi 2006. Справочное пособие: Язык Delphi, классы, функции Win32 и .NET. — Архангельский А.Я.

Пример применения функции DayOfWeek см. в описании функции Date. DayOfTheYear

Извлекает день года из указанной даты и времени

См. разд. «DayOf и другие функции дат и времени вида . Of».

Определяет день недели

См. разд. «DayOfTheWeek, DayOfWeek».

Возвращают число дней между двумя значениями даты и времени Библиотеки VCL Win32, VCL .NET 990

Глава 12 ¦ Описания функций

Модуль в VCL Win32 DateUtils

Пространство имен в .NET Borland.VcLDateUtils

function DaysBetween(const ANow, AThen: TDateTime): Int64; function DaySpan(const ANow, AThen: TDateTime): Double;

Функции DaysBetween и DaySpan возвращают число суток между двумя значениями даты и времени ANow и AThen типа TDateTime. Функция DaysBetween возвращает число полных суток между двумя датами с учетом времени. А функция DaySpan возвращает действительное число, содержащее дробную часть, отображающую неполные сутки с учетом времени.

var Tl, Т2: TDateTime; i: integer; г: real;

Tl := EncodeDateTime(2001, 10, 5, 11, 25, 45, 300); Т2 := EncodeDateTime(2001, 10, б, 11, 24, 45, 300); і := DaysBetween(Т2, Tl); г := DaySpan(Т2, Tl);

зададут переменной і значение 0, а переменной г значение 0,999305555553292. В этом примере значения дат и времени Tl и Т2 задаются с помощью функции EncodeDateTime. Различие между двумя значениями составляет 23 часа 59 минут. Поэтому функция DaysBetween возвращает 0, так как разность значений менее суток. А функция DaySpan возвращает число, близкое к единице.

Уменьшает порядковую величину на заданное значение Библиотеки VCL Win32, VCL .NET Модуль в VCL Win32 System

Пространство имен в .NET Borland.Delphi.System Объявление

procedure Dec(var X[ ; N: Longint]); Описание

Процедура Dec — декремент, уменьшает значение передаваемого по ссылке аргумента X на 1, если аргумент N не задан, или на N, если этот аргумент задан. Переменная X должна быть порядкового типа (целого, перечислимого, указатель и т.п.) или типа PChar (если используется расширенный синтаксис). Аргумент N, если он задан, должен быть выражением целого типа. Таким образом, выражение Dec(X) эквивалентно оператору

X = X-I; DecodeDate

а выражение Dec(X, N) — оператору

Но процедура Dec выполняется быстрее и порождает более компактный код.

Разбивает дату на год, месяц и день Библиотеки VCL Win32, VCL .NET Модуль в VCL Win32 SysUtils Пространство имен в .NET Borland.VcLSysUtils Объявление

procedure DecodeDate(Date : TDateTime;

var Year, Month, Day: Word);

Процедура DecodeDate разбивает дату Date типа TDateTime (см. в гл. 9) на год — Year, месяц — Month и день — Day.

См. также разд. «DayOf и другие функции дат и времени вида . Of», в котором приведены функции, позволяющие по отдельности извлекать год, месяц и день указанной даты.

Ниже приведен код, определяющий по значению переменной Year_b, в которой хранится год рождения какого-то сотрудника, его возраст Age в текущем году, а также текущий месяц и день:

var Year, Month, Day, Age, Year_b:word;

DecodeDate(Now, Year, Month, Day); Age := Year — Year_b;

После вызова процедуры DecodeDate в переменных Year, Month и Day хранятся соответственно текущий год, месяц и день. Значение Year используется для вычисления возраста.

Разбивает время на час, минуту, секунду и миллисекунду

Библиотеки VCL Win32, VCL .NET

Модуль в VCL Win32 SysUtils

Пространство имен в .NET Borland.VcLSysUtils

procedure DecodeTime(Time : TDateTime;

var Hour, Min, Sec, MSec: Word);

Процедура DecodeTime разбивает время Time типа TDateTime (см. в гл. 9) на час — Hour, минуту — Min, секунду — Sec, миллисекунду — MSec. 992

Глава 12 ¦ Описания функций

См. также разд. «DayOf и другие функции дат и времени вида . Of», в котором приведены функции, позволяющие по отдельности извлекать час, минуту, секунду и миллисекунду указанного времени.

Если вам надо зафиксировать с точность до секунды интервал времени, на протяжении которого выполняются какие-то длинные вычисления, вы можете сделать это следующим кодом:

var Hourl, Hour2, Mini, Min2, Seel, Seel, MSec: word;

DecodeTime(Time, Hourl, Mini, Seel, MSec); DecodeTime(Time, Hour2, Min2, Sec2, MSec); Editl.Text := ‘Прошло ‘ + IntToStr(Hour2 — Hourl) + ‘ часов, ‘ + IntToStr(Min2- Mini) + ‘ минут, ‘ + IntToStr(Sec2- Sec 1) + ‘ секунд’;

В результате в окно Editl будет помещен текст вида: «Прошло . часов, . минут, . секунд».

Переводит значение угла, заданное в градусах, в значение, заданное в циклах См. разд. «CycleToDeg и другие функции преобразования углов».

Переводит значение угла, заданное в градусах, в значение, заданное в градах См. разд. «CycleToDeg и другие функции преобразования углов».

Переводит значение угла, заданное в градусах, в значение, заданное в радианах См. разд. «CycleToDeg и другие функции преобразования углов».
Предыдущая 421 422 423 424 425 426 .. 478 >> Следующая

DaysBetween — Функция Delphi

Can somebody give me the code of the ‘DaysBetween’ function ?

I have Delphi 5 and haven’t the DateUtils.pas unit and need this function.

A lot of thanks.

Well, I dont have the unit, but I guess, this will do:

function DaysBetween(const ANow, AThen: TDateTime): Integer;
begin
Result := Trunc(DaySpan(ANow, AThen));
end;

function DaySpan(const ANow, AThen: TDateTime): Double;
begin
Result := SpanOfNowAndThen(ANow, AThen);
end;

function SpanOfNowAndThen(const ANow, AThen: TDateTime): TDateTime;
begin
if ANow

DaysBetween — Функция Delphi

похоже вылез очередной баг VCL-ля.
исходная задача: имеем TDateTime, из него нужно получить количество дней. компилятор bcc5.5.1.
логично было бы преобразовать его в int и в нём будет лежать количество дней, но cледующий код выдаёт:

31.12.1899
0.9999999999999995559

хотелось бы знать, где я ошибся, и что я делаю не так, а то у меня всё большее желание, отказаться от этого самого TDateTime во всех проектах в пользу самописного класса. на сравнениях уже накалывался, теперь вот это

Правила форума «Delphi: Общие вопросы»

От: Rius
Дата: 26.08.08 02:52
Оценка:

Здравствуйте, svg2003, Вы писали:

S>похоже вылез очередной баг VCL-ля.
S>исходная задача: имеем TDateTime, из него нужно получить количество дней. компилятор bcc5.5.1.
S>логично было бы преобразовать его в int и в нём будет лежать количество дней, но cледующий код выдаёт:

S>31.12.1899
S>0.9999999999999995559
S>0

S>

S>хотелось бы знать, где я ошибся, и что я делаю не так, а то у меня всё большее желание, отказаться от этого самого TDateTime во всех проектах в пользу самописного класса. на сравнениях уже накалывался, теперь вот это

попробуйте получить число дней встроенными свойствами класса TDateTime

От: svg2003
Дата: 26.08.08 02:58
Оценка:

Здравствуйте, Rius, Вы писали:

R>попробуйте получить число дней встроенными свойствами класса TDateTime

К сожалению, встроенных свойств для этого нету. В хелпе так и написано, The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. Сейчас получается дикий изврат, когда я отбрасываю ошибки округления, а только потом получаю верное количество дней:

От: Hruks www.hruks.com
Дата: 26.08.08 06:02
Оценка:

Здравствуйте, svg2003, Вы писали:

S>похоже вылез очередной баг VCL-ля.

int(0.9999999999999995559) и должен быть равен 0. Тут как раз всё верно.

Единственный ньюанс это небольшая неточность при конвертации из строки в число: TDateTime t2( «01:00:00» );
Но это вполне допустимо.
Работа с плавающей точкой требует аккуратности.
Например нельзя сравнивать числа с плавающей точкой на равестнство.
Вместо этого нужно сравнивать модуль разности чисел с константой точности.

Для Вашего примера характерна ещё одна неосторожность в работе с плавающей точкой — целочисленное откидывание дробной части (преобразование к инту)
Либо прибавляйте 0.5 к переменной t1 перед преобразованием к int, либо используйте функцию округления (trunc) вместо отбрасывания целой части (int).

От: andy1618
Дата: 26.08.08 06:43
Оценка:

H>Либо прибавляйте 0.5 к переменной t1 перед преобразованием к int, либо используйте функцию округления (trunc) вместо отбрасывания целой части (int).

trunc — это, вроде, тоже отбрасывание. Надо round использовать. А вообще, есть такой чудный модуль — DateUtils (по крайней мере, в Delphi) — там разных функций для работы с TDateTime — мама не горюй!

От: andy1618
Дата: 26.08.08 06:47
Оценка:

S>похоже вылез очередной баг VCL-ля.

По-видимому, Вам сюда:
(статья 7-летней давности про «неочевидные особенности вещестенных чисел»)
http://www.delphikingdom.com/asp/viewitem.asp?catalog >

От: Leonid Troyanovsky
Дата: 26.08.08 09:27
Оценка:

Здравствуйте, andy1618, Вы писали:

A>trunc — это, вроде, тоже отбрасывание. Надо round использовать. А вообще, есть такой чудный модуль — DateUtils (по крайней мере, в Delphi) — там разных функций для работы с TDateTime — мама не горюй!

А чего в оном сверхестественного?
Смотрим function DaysBetween и видим тот же Trunc.

От: svg2003
Дата: 26.08.08 23:03
Оценка:

Здравствуйте, svg2003, Вы писали:

Ребят, я всё прекрасно понимаю про внутреннюю структуру вещественных чисел, особенности преобразования и т.д. и т.п. Но у меня-то задача конкретная — получить из TDateTime число дней. Способ, предложенный в документации, работает не верно. Кстати, +0.5 делать тоже нельзя, потому как 23:00:00 в вещественном виде представлен 0.9583333333333329263. Конечно, можно делать +0.000005 или нечто подобное, что сделал я с пересозданием TDateTime-а, но проблему-то это не решает по сути. Ну нет ошибки в том месте, вылезет потом где-нибудь в другом

От: andy1618
Дата: 27.08.08 05:51
Оценка:

A>>trunc — это, вроде, тоже отбрасывание. Надо round использовать. А вообще, есть такой чудный модуль — DateUtils (по крайней мере, в Delphi) — там разных функций для работы с TDateTime — мама не горюй!

LT>А чего в оном сверхестественного?
LT>Смотрим function DaysBetween и видим тот же Trunc.

Упс, извиняюсь, там есть только fuzzy-функции для сравнения. Да и моё предложение про round — тоже не в кассу

А проблему можно решить так: перед вычислением DaysBetween делать «очистку», т.е. выравнивание TDateTime до целых миллисекунд.
Что-нибудь типа такого:

Либо, если предполагается много арифметики со временем — то можно сразу использовать TTimeStamp:
==

TTimeStamp represents time and date values.

Use TTimeStamp to represent date and time values when a great deal of accuracy is required for the time portion. When the time values do not need to be precise to the millisecond, use the more compact TDateTime representation. If additional precision is needed, use TSQLTimeStamp (but do NOT assign it to a Variant).

TTimeStamp is a record with a Time field that represents the number of seconds elapsed since midnight, and a Date field that represents the number of calendar days since the start of the calendar.

От: andy1618
Дата: 27.08.08 06:21
Оценка:

S>Ребят, я всё прекрасно понимаю про внутреннюю структуру вещественных чисел, особенности преобразования и т.д. и т.п. Но у меня-то задача конкретная — получить из TDateTime число дней. Способ, предложенный в документации, работает не верно.

Строго говоря, само преобразование в дни работает честно, т.к. в вашем примере до полных суток не хватает парочки каких-нибудь там фемтосекунд

Ну а, чтобы побороть ошибки вещественной арифметики, можно перед преобразованием в дни округлять время до целых секунд/миллисекунд.
Можно так

Функции Delphi модуля DateUtils

Предлагаем список функций модуля DateUtils , используемого в среде разработки Delphi.

Модуль 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 переменную на количество лет
RecodeDate Изменяет только дату переменной TDateTime
RecodeTime Изменяет только время переменной TDateTime
Tomorrow Возвращает дату завтрашнего дня
MonthOfTheYear Выдает месяц года для значения TDateTime
Yesterday Выдает вчерашнюю дату

Функции Delphi модуля DateUtils : 3 комментария

Давно искала подобное, спасибо очень интересно!

Илон Маск рекомендует:  Доступ к clipboard(буферу обмена)
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL