|
@@ -15,14 +15,21 @@
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|
**********************************************************************}
|
|
**********************************************************************}
|
|
-
|
|
|
|
|
|
+{$IFNDEF FPC_DOTTEDUNITS}
|
|
unit DateUtils;
|
|
unit DateUtils;
|
|
|
|
+{$ENDIF}
|
|
|
|
|
|
interface
|
|
interface
|
|
|
|
|
|
|
|
+
|
|
{$ifndef FPUNONE}
|
|
{$ifndef FPUNONE}
|
|
|
|
+{$IFDEF FPC_DOTTEDUNITS}
|
|
|
|
+uses
|
|
|
|
+ System.SysUtils, System.Math;
|
|
|
|
+{$ELSE}
|
|
uses
|
|
uses
|
|
SysUtils, Math;
|
|
SysUtils, Math;
|
|
|
|
+{$ENDIF}
|
|
|
|
|
|
{ ---------------------------------------------------------------------
|
|
{ ---------------------------------------------------------------------
|
|
Various constants
|
|
Various constants
|
|
@@ -588,7 +595,11 @@ type
|
|
|
|
|
|
implementation
|
|
implementation
|
|
|
|
|
|
|
|
+{$IFDEF FPC_DOTTEDUNITS}
|
|
|
|
+uses System.SysConst;
|
|
|
|
+{$ELSE FPC_DOTTEDUNITS}
|
|
uses sysconst;
|
|
uses sysconst;
|
|
|
|
+{$ENDIF FPC_DOTTEDUNITS}
|
|
|
|
|
|
const
|
|
const
|
|
TDateTimeEpsilon = 2.2204460493e-16;
|
|
TDateTimeEpsilon = 2.2204460493e-16;
|
|
@@ -2847,25 +2858,25 @@ end;
|
|
function UniversalTimeToLocal(UT: TDateTime): TDateTime;
|
|
function UniversalTimeToLocal(UT: TDateTime): TDateTime;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=SysUtils.UniversalTimeToLocal(UT,-GetLocalTimeOffset(UT, True));
|
|
|
|
|
|
+ Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.UniversalTimeToLocal(UT,-GetLocalTimeOffset(UT, True));
|
|
end;
|
|
end;
|
|
|
|
|
|
function UniversalTimeToLocal(UT: TDateTime; TZOffset : Integer): TDateTime;
|
|
function UniversalTimeToLocal(UT: TDateTime; TZOffset : Integer): TDateTime;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=SysUtils.UniversalTimeToLocal(UT,TZOffset);
|
|
|
|
|
|
+ Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.UniversalTimeToLocal(UT,TZOffset);
|
|
end;
|
|
end;
|
|
|
|
|
|
Function LocalTimeToUniversal(LT: TDateTime): TDateTime;
|
|
Function LocalTimeToUniversal(LT: TDateTime): TDateTime;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=SysUtils.LocalTimeToUniversal(LT,-GetLocalTimeOffset(LT, False));
|
|
|
|
|
|
+ Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.LocalTimeToUniversal(LT,-GetLocalTimeOffset(LT, False));
|
|
end;
|
|
end;
|
|
|
|
|
|
Function LocalTimeToUniversal(LT: TDateTime;TZOffset: Integer): TDateTime;
|
|
Function LocalTimeToUniversal(LT: TDateTime;TZOffset: Integer): TDateTime;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=SysUtils.LocalTimeToUniversal(LT,TZOffset);
|
|
|
|
|
|
+ Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.LocalTimeToUniversal(LT,TZOffset);
|
|
end;
|
|
end;
|
|
|
|
|
|
Const
|
|
Const
|
|
@@ -3240,7 +3251,7 @@ end;
|
|
|
|
|
|
function TDateTimeHelper.DaysBetween(const aDateTime: TDateTime): Integer;
|
|
function TDateTimeHelper.DaysBetween(const aDateTime: TDateTime): Integer;
|
|
begin
|
|
begin
|
|
- Result :=DateUtils.DaysBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result :={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.DaysBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.EndOfDay: TDateTime;
|
|
function TDateTimeHelper.EndOfDay: TDateTime;
|
|
@@ -3310,7 +3321,7 @@ end;
|
|
|
|
|
|
class function TDateTimeHelper.GetNow: TDateTime;
|
|
class function TDateTimeHelper.GetNow: TDateTime;
|
|
begin
|
|
begin
|
|
- Result := SysUtils.Now;
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Now;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.GetSecond: Word;
|
|
function TDateTimeHelper.GetSecond: Word;
|
|
@@ -3325,12 +3336,12 @@ end;
|
|
|
|
|
|
class function TDateTimeHelper.GetToday: TDateTime;
|
|
class function TDateTimeHelper.GetToday: TDateTime;
|
|
begin
|
|
begin
|
|
- Result := SysUtils.Date;
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Date;
|
|
end;
|
|
end;
|
|
|
|
|
|
class function TDateTimeHelper.GetTomorrow: TDateTime;
|
|
class function TDateTimeHelper.GetTomorrow: TDateTime;
|
|
begin
|
|
begin
|
|
- Result := SysUtils.Date + 1;
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Date + 1;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.GetTotalSecounds: Int64;
|
|
function TDateTimeHelper.GetTotalSecounds: Int64;
|
|
@@ -3350,12 +3361,12 @@ end;
|
|
|
|
|
|
class function TDateTimeHelper.GetYesterDay: TDateTime;
|
|
class function TDateTimeHelper.GetYesterDay: TDateTime;
|
|
begin
|
|
begin
|
|
- Result := SysUtils.Date - 1;
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.Date - 1;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.HoursBetween(const aDateTime: TDateTime): Int64;
|
|
function TDateTimeHelper.HoursBetween(const aDateTime: TDateTime): Int64;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.HoursBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.HoursBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.InRange(const aStartDateTime, aEndDateTime: TDateTime;
|
|
function TDateTimeHelper.InRange(const aStartDateTime, aEndDateTime: TDateTime;
|
|
@@ -3366,47 +3377,47 @@ end;
|
|
|
|
|
|
function TDateTimeHelper.IsAM: Boolean;
|
|
function TDateTimeHelper.IsAM: Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.IsAM(Self);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsAM(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.IsInLeapYear: Boolean;
|
|
function TDateTimeHelper.IsInLeapYear: Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.IsInLeapYear(Self);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsInLeapYear(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.IsPM: Boolean;
|
|
function TDateTimeHelper.IsPM: Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.IsPM(Self);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsPM(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.IsSameDay(const aDateTime: TDateTime): Boolean;
|
|
function TDateTimeHelper.IsSameDay(const aDateTime: TDateTime): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.IsSameDay(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsSameDay(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.IsToday: Boolean;
|
|
function TDateTimeHelper.IsToday: Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.IsToday(Self);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.IsToday(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.MilliSecondsBetween(const aDateTime: TDateTime): Int64;
|
|
function TDateTimeHelper.MilliSecondsBetween(const aDateTime: TDateTime): Int64;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.MilliSecondsBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.MilliSecondsBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.MinutesBetween(const aDateTime: TDateTime): Int64;
|
|
function TDateTimeHelper.MinutesBetween(const aDateTime: TDateTime): Int64;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.MinutesBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.MinutesBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.MonthsBetween(const aDateTime: TDateTime): Integer;
|
|
function TDateTimeHelper.MonthsBetween(const aDateTime: TDateTime): Integer;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.MonthsBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.MonthsBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.SecondsBetween(const aDateTime: TDateTime): Int64;
|
|
function TDateTimeHelper.SecondsBetween(const aDateTime: TDateTime): Int64;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.SecondsBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.SecondsBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.StartOfDay: TDateTime;
|
|
function TDateTimeHelper.StartOfDay: TDateTime;
|
|
@@ -3439,60 +3450,60 @@ end;
|
|
|
|
|
|
function TDateTimeHelper.WeeksBetween(const aDateTime: TDateTime): Integer;
|
|
function TDateTimeHelper.WeeksBetween(const aDateTime: TDateTime): Integer;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WeeksBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WeeksBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinDays(const aDateTime: TDateTime; const aDays:
|
|
function TDateTimeHelper.WithinDays(const aDateTime: TDateTime; const aDays:
|
|
Integer): Boolean;
|
|
Integer): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastDays(Self, aDateTime, aDays);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastDays(Self, aDateTime, aDays);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinHours(const aDateTime: TDateTime; const aHours:
|
|
function TDateTimeHelper.WithinHours(const aDateTime: TDateTime; const aHours:
|
|
Int64): Boolean;
|
|
Int64): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastHours(Self, aDateTime, aHours);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastHours(Self, aDateTime, aHours);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinMilliseconds(const aDateTime: TDateTime; const
|
|
function TDateTimeHelper.WithinMilliseconds(const aDateTime: TDateTime; const
|
|
AMilliseconds: Int64): Boolean;
|
|
AMilliseconds: Int64): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastMilliSeconds(Self, aDateTime, AMilliseconds);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastMilliSeconds(Self, aDateTime, AMilliseconds);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinMinutes(const aDateTime: TDateTime; const
|
|
function TDateTimeHelper.WithinMinutes(const aDateTime: TDateTime; const
|
|
aMinutes: Int64): Boolean;
|
|
aMinutes: Int64): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastMinutes(Self, aDateTime, aMinutes);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastMinutes(Self, aDateTime, aMinutes);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinMonths(const aDateTime: TDateTime; const aMonths:
|
|
function TDateTimeHelper.WithinMonths(const aDateTime: TDateTime; const aMonths:
|
|
Integer): Boolean;
|
|
Integer): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastMonths(Self, aDateTime, aMonths);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastMonths(Self, aDateTime, aMonths);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinSeconds(const aDateTime: TDateTime; const
|
|
function TDateTimeHelper.WithinSeconds(const aDateTime: TDateTime; const
|
|
aSeconds: Int64): Boolean;
|
|
aSeconds: Int64): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastSeconds(Self, aDateTime, aSeconds);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastSeconds(Self, aDateTime, aSeconds);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinWeeks(const aDateTime: TDateTime; const aWeeks:
|
|
function TDateTimeHelper.WithinWeeks(const aDateTime: TDateTime; const aWeeks:
|
|
Integer): Boolean;
|
|
Integer): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastWeeks(Self, aDateTime, aWeeks);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastWeeks(Self, aDateTime, aWeeks);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.WithinYears(const aDateTime: TDateTime; const aYears:
|
|
function TDateTimeHelper.WithinYears(const aDateTime: TDateTime; const aYears:
|
|
Integer): Boolean;
|
|
Integer): Boolean;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.WithinPastYears(Self, aDateTime, aYears);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.WithinPastYears(Self, aDateTime, aYears);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDateTimeHelper.YearsBetween(const aDateTime: TDateTime): Integer;
|
|
function TDateTimeHelper.YearsBetween(const aDateTime: TDateTime): Integer;
|
|
begin
|
|
begin
|
|
- Result := DateUtils.YearsBetween(Self, aDateTime);
|
|
|
|
|
|
+ Result := {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}DateUtils.YearsBetween(Self, aDateTime);
|
|
end;
|
|
end;
|
|
|
|
|
|
class function TDateTimeHelper.Parse(Date: string; aFormat: string = '';
|
|
class function TDateTimeHelper.Parse(Date: string; aFormat: string = '';
|