System.DateUtilsに2つのTDateTime値の間隔を取得する関数が用意されています。
uses System.DateUtils;
System.DateUtils.MilliSecondsBetween
System.DateUtils.MilliSecondsBetween関数は、指定した2つのTDateTime値の間隔が何ミリ秒かを返します。
Writeln(IntToStr(MilliSecondsBetween(StrToTime('00:00:00.000'), StrToTime('00:00:00.010'))));
//=> 10
Writeln(IntToStr(MilliSecondsBetween(StrToTime('00:00:00.000'), StrToTime('00:00:20.000'))));
//=> 20000
System.DateUtils.SecondsBetween
System.DateUtils.SecondsBetween関数は、指定した2つのTDateTime値の間隔が何秒かを返します。
Writeln(IntToStr(SecondsBetween(StrToTime('00:00:00.000'), StrToTime('00:00:20.000'))));
//=> 20
Writeln(IntToStr(SecondsBetween(StrToTime('00:00:00.000'), StrToTime('00:30:00.000'))));
//=> 1800
System.DateUtils.MinutesBetween
System.DateUtils.MinutesBetween関数は、指定した2つのTDateTime値の間隔が何分かを返します。
Writeln(IntToStr(MinutesBetween(StrToTime('00:00:00.000'), StrToTime('00:30:00.000'))));
//=> 30
Writeln(IntToStr(MinutesBetween(StrToTime('00:00:00.000'), StrToTime('01:30:00.000'))));
//=> 90
System.DateUtils.HoursBetween
System.DateUtils.HoursBetween関数は、指定した2つのTDateTime値の間隔が何時間かを返します。
Writeln(IntToStr(HoursBetween(StrToTime('00:00:00.000'), StrToTime('01:00:00.000'))));
//=> 1
Writeln(IntToStr(HoursBetween(StrToDate('2013/01/01'), StrToDate('2013/01/10'))));
//=> 216
System.DateUtils.DaysBetween
System.DateUtils.DaysBetween関数は、指定した2つのTDateTime値の間隔が何日かを返します。
Writeln(IntToStr(DaysBetween(StrToDate('2013/01/01'), StrToDate('2013/01/10'))));
//=> 9
Writeln(IntToStr(DaysBetween(StrToDate('2013/01/01'), StrToDate('2013/02/01'))));
//=> 31
System.DateUtils.WeeksBetween
System.DateUtils.WeeksBetween関数は、指定した2つのTDateTime値の間隔が何週かを返します。
Writeln(IntToStr(WeeksBetween(StrToDate('2013/01/01'), StrToDate('2013/01/10'))));
//=> 1
Writeln(IntToStr(WeeksBetween(StrToDate('2013/01/01'), StrToDate('2013/02/01'))));
//=> 4
System.DateUtils.MonthsBetween
System.DateUtils.MonthsBetween関数は、指定した2つのTDateTime値の間隔が何か月かを返します。
Writeln(IntToStr(MonthsBetween(StrToDate('2013/01/01'), StrToDate('2013/02/01'))));
//=> 1
Writeln(IntToStr(MonthsBetween(StrToDate('2013/01/01'), StrToDate('2014/01/01'))));
//=> 11
System.DateUtils.YearsBetween
System.DateUtils.YearsBetween関数は、指定した2つのTDateTime値の間隔が何年かを返します。
Writeln(IntToStr(YearsBetween(StrToDate('2013/01/01'), StrToDate('2014/01/01'))));
//=> 0
Writeln(IntToStr(YearsBetween(StrToDate('2013/01/01'), StrToDate('2020/02/01'))));
//=> 7