*
  
*
*
* *
Login 
    * Delphi Components * Date Functions Class - listing  
The Date Functions Class contains around 170 date related functions that you can use in your apps. Simply add addate to your USES clause and go.

The Date Functions Class is included in the Date Time Suite - so download that from the Delphi Components page and run the installer to obtain addate.pas.
  Date Functions Class list... 

The functions included in the Date Functions Class (included in the Date Time Suite) are listed below straight from the source code.

 type
   TDateOrder = (doMDY, doDMY, doYMD, doDMMMY, doMMMDY, doYMMMD);
   PDayTable = ^TDayTable;
   TDayTable = array[1..12] of Word;

   TAdrockDayOfWeek =
    (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, InvalidDayOfWeek);
   TAdrockDates =  Class
     HolidayStringList : TStrings;
    public
    Constructor Create;

    Function  ReturnDelphiDayOfWeek(StartingDayOfWeek, WeekDay : Integer) : Integer;
    Function  ReturnWeekDayName(StartingDayOfWeek, WeekDay : Integer) : String;
    Function  ReturnWeekofMonth(StartingDayOfWeek : Integer; WorkDate : TDateTime) : Word;
    Function  ReturnWeekofYear(StartingDayOfWeek : Integer; WorkDate : TDateTime) : Integer;

    Function  ReturnDayOfWeek(StartingDayOfWeek : Integer; WorkDate : TDateTime) : Word;
    Function  ReturnDayOfMonth(WorkDate : TDateTime) : Word;
    Function  ReturnDayOfYear(WorkDate : TDateTime)  : Word;

    Function  ReturnMonth(WorkDate : TDateTime)  : Word;

    { Donated by Tim Boyd (timboyd@bigfoot.com) }
    function  ReturnFirstOfQuarter(const DateTime: TDateTime): TDateTime;
    { Donated by Tim Boyd (timboyd@bigfoot.com) }
    function  ReturnLastOfQuarter(const DateTime: TDateTime): TDateTime;

    Function  ReturnQuarter(WorkDate : TDateTime)  : Word;
    Function  ReturnYear(WorkDate : TDateTime) : Word;
    Function  ReturnCentury(WorkDate : TDateTime) : Word;
    Function  ReturnDayTh(WorkDate : TDateTime) : String;
    Function  ReturnDayThi(WorkDay : Integer) : String;

    Function  ReturnDaysAgo(WorkDate : TDateTime) : String;
    Function  ReturnWeeksAgo(StartingDayOfWeek : Integer; WorkDate : TDateTime) : String;
    Function  ReturnMonthsAgo(WorkDate : TDateTime) : String;
    Function  ReturnQuartersAgo(WorkDate : TDateTime) : String;
    Function  ReturnYearsAgo(WorkDate : TDateTime) : String;

    Function  AreDatesInSameMonth(FirstDate, SecondDate : TDateTime) : Boolean;
    Function  AreDatesInSameYear(FirstDate, SecondDate : TDateTime) : Boolean;
    Function  AreDatesInSameMonthAndYear(FirstDate, SecondDate : TDateTime) : Boolean;

    Function  ReturnBoundaryWeeksBetweenDates(StartingDayOfWeek : Integer; FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnBoundaryQuartersBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnBoundaryMonthsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnBoundaryYearsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;

    Function  ReturnDaysBetweenDates(FirstDate, SecondDate : TDateTime) : LongInt;
    Function  ReturnWeeksBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnMonthsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnQuartersBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnYearsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;

    function  GetDayTable(Year: Word): PDayTable;
    function  DoEncodeDate(fYear, fMonth, fDay: Word; var fDate: TDateTime): Boolean;
    procedure ScanCommasAndBlanks(const S: string; var Pos: Integer);
    procedure ScanBlanks(const S: string; var Pos: Integer);
    function  ScanMonthWord(const S: string; var Pos: Integer;var Number: Word): Boolean;
    function  ScanNumber(const S: string; var Pos: Integer; var Number: Word): Boolean;
    function  ScanCharNoSpace(const S: string; var Pos: Integer; Ch: Char): Boolean;
    function  ScanChar(const S: string; var Pos: Integer; Ch: Char): Boolean;
    function  GetTextDateOrder(const DateFormat: string): TDateOrder;
    function  GetDateOrder(const DateFormat: string): TDateOrder;
    Function  ReturnEasterSunday(Year : Word) : TDateTime;

    Function  ReturnDateOrder : TDateOrder;
    Function  ConvertFromJulian(Julian : Longint) : TDateTime;
    Function  ConvertToJulian(Date : TDateTIme) : Longint;
    Function  ConvertToJuliani(Year, Month, Day : Word) : Longint;
    function  AdrockDateToStr(WorkDate : TDateTime) : String;
    function  AdrockScanDate(const S: string; var Pos: Integer; var fDate: TDateTime): Boolean;
    function  ScanDate(const S: string; var Pos: Integer; var Date: TDateTime): Boolean;
    Function  IsValidDate(WorkDate : String) : Boolean;

    Function  IsValidAdrockDate(WorkDate : String) : Boolean;
    Function  IsValidAdrockDateTime(WorkDate : String) : Boolean;
    Function  IsValidAdrockTime(WorkDate : String) : Boolean;

    function  AdrockStrToDate(WorkDate : String) : TDateTime;
    function  AdrockStrToDateTime(WorkDate : String) : TDateTime;
    function  AdrockStrToTime(WorkDate : String) : TDateTime;

    Function  IsLeapyear(WorkDate : TDateTime) : Boolean;
    function  IsLeapYeari(aYear : Integer) : Boolean;
    Function  IsDateInRange(WorkDate, StartDate, EndDate : TDateTime) : Boolean;

    Function  AddDays(NumberOfDays : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddWeeks(NumberOfWeeks : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddMonths(NumberOfMonths : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddQuarters(NumberOfQuarters : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddYears(NumberOfYears : Integer; WorkDate :TDateTime) : TDateTime;

    Function  FormatDate(FormatMask : String; WorkDate : TDateTime) : String;

    Function  DaysInMonth(WorkDate : TDateTime) : Word;
    Function  DaysInMonthi(Month, Year : Word) : Word;
    Function  DaysInYear(WorkDate : TDateTime) : Word;
    function  DaysInYeari(Year : Integer) : Word;
    Function  DaysLeftInMonth(WorkDate : TDateTime) : Word;
    function  DaysLeftInMonthi(Day, Month, Year : Integer) : Word;
    Function  DaysLeftInYear(WorkDate : TDateTime) : Word;
    Function  DaysLeftInYeari(Day, Month, Year : Integer) : Word;

    Function  AddDate(DateMask : String; NumberOfPeriods : Integer; WorkDate : TDatetime) : TDateTime;
    Function  DateDiff(DateMask : String; StartingDayOfWeek : Integer; FirstDate, SecondDate : TDatetime) : Longint;

    Function  AddTime(fDateTime : TDateTime; Hours, Minutes, Seconds : longint) : TDateTime;
    Procedure TimeDiff(fDateTime1, fDateTime2 : TDateTime;  var Hours, Mins, Secs : longint);

    Function  GetFirstofMonthWeekNumber(StartingDayOfMonth : Integer; WorkDate : TDateTime) : Integer;
    Function  ReturnPersonsAge_Work(Today, DOB : TDateTime) : Integer;
    Function  ReturnPersonsAge(DOB : TDateTime) : Integer;
    function  AgeStr(aDate: TDateTime): string;

    Function  ReturnDateOrdinalDayOfWeek(StartOfMonth : Boolean; Week, WeekDay, Month, Year : Integer) : TDateTime;

    Function  ReturnDaysInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnWeeksInthePast(StartingDayOfWeek : Integer; WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnMonthsInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnQuartersInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnYearsInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;

    Function  ReturnFirstAndLastOfAGivenWeek(WeekStart : TAdrockWeekDay; WeekNumberStyle : TAdrockWeekStyle;
                 WeekNumber, Year : Integer; var FirstDate, LastDate : TDateTime): Boolean;
    Function  ReturnFirstOfAGivenWeek(WeekStart : TAdrockWeekDay; WeekNumberStyle : TAdrockWeekStyle;
                 WeekNumber, Year : Integer): TDateTime;
    Function  ReturnLastOfAGivenWeek(WeekStart : TAdrockWeekDay; WeekNumberStyle : TAdrockWeekStyle;
                 WeekNumber, Year : Integer): TDateTime;

    Function  ReturnFirstOfAWeek(StartingDayOfWeek: Integer; WorkDate : TDateTime) : TDateTime;
    Function  ReturnLastOfAWeek(StartingDayOfWeek: Integer; WorkDate : TDateTime) : TDateTime;

    Function  ReturnLastOfGivenMonth(ADate: TDateTime) : TDateTime;
    Function  ReturnFirstOfGivenMonth(ADate: TDateTime) : TDateTime;

    Function  ReturnFirstOfTheWeek : TDateTime;
    Function  ReturnLastOfTheWeek : TDateTime;


    Function  ReturnFirstOfTheMonth : TDateTime;
    Function  ReturnLastOfTheMonth : TDateTime;
    Function  ReturnFirstOfTheYear : TDateTime;
    Function  ReturnLastOfTheYear : TDateTime;

    Function  ReturnFirstOfNextWeek : TDateTime;
    Function  ReturnLastOfNextWeek : TDateTime;

    Function  ReturnFirstOfLastWeek : TDateTime;
    Function  ReturnLastOfLastWeek : TDateTime;
    Function  ReturnFirstOfLastMonth : TDateTime;
    Function  ReturnLastOfLastMonth : TDateTime;
    Function  ReturnFirstOfNextMonth : TDateTime;
    Function  ReturnLastOfNextMonth : TDateTime;

    Function  ReturnFirstOf2MonthsAgo : TDateTime;
    Function  ReturnFirstOf3MonthsAgo : TDateTime;
    Function  ReturnFirstOf6MonthsAgo : TDateTime;


    Function  ReturnFirstOfLastYear : TDateTime;
    Function  ReturnLastOfLastYear : TDateTime;

    function  IntToDate(WorkDate : Longint) : TDateTime;
    function  DateToInt(WorkDate : TDateTime) : Longint;

    { Added with Version 1.10 }
    Function  IsDateWithinRange(TestDate, FirstDate, LastDate : TDatetime)    : Boolean;
    Function  NextBusinessDay(RequiredDate : TDateTime)  : TDateTime;
    Function  PrevBusinessDay(RequiredDate : TDateTime)  : TDateTime;
    function  ReturnBusinessDaysBetweenDates(FirstDate, LastDate : TDatetime) : Integer;
    Function  VerbalDate(WorkDate : TDatetime) : String;

    Function  IsValidMonthName(MonthName : String) : Boolean;
    Function  IsValidDayName(DayName : String) : Boolean;
    Function  IsMonday(WorkDate : TDateTime) : Boolean;
    Function  IsTuesday(WorkDate : TDateTime) : Boolean;
    Function  IsWednesday(WorkDate : TDateTime) : Boolean;
    Function  IsThursday(WorkDate : TDateTime) : Boolean;
    Function  IsFriday(WorkDate : TDateTime) : Boolean;
    Function  IsSaturday(WorkDate : TDateTime) : Boolean;
    Function  IsSunday(WorkDate : TDateTime) : Boolean;

    Function  IsJanuary(WorkDate : TDateTime) : Boolean;
    Function  IsFebruary(WorkDate : TDateTime) : Boolean;
    Function  IsMarch(WorkDate : TDateTime) : Boolean;
    Function  IsApril(WorkDate : TDateTime) : Boolean;
    Function  IsMay(WorkDate : TDateTime) : Boolean;
    Function  IsJune(WorkDate : TDateTime) : Boolean;
    Function  IsJuly(WorkDate : TDateTime) : Boolean;
    Function  IsAugust(WorkDate : TDateTime) : Boolean;
    Function  IsSeptember(WorkDate : TDateTime) : Boolean;
    Function  IsOctober(WorkDate : TDateTime) : Boolean;
    Function  IsNovember(WorkDate : TDateTime) : Boolean;
    Function  IsDecember(WorkDate : TDateTime) : Boolean;

    Function  IsWeekend(WorkDate : TDateTime) : Boolean;
    Function  IsWeekday(WorkDate : TDateTime) : Boolean;

    Function  IsAM(WorkDate : TDateTime) : Boolean;
    Function  IsPM(WorkDate : TDateTime) : Boolean;
    Function  IsMorning(WorkDate : TDateTime) : Boolean;
    Function  IsAfternoon(WorkDate : TDateTime) : Boolean;

    Function  IsMidday(WorkDate : TDateTime) : Boolean;
    Function  IsMidNight(WorkDate : TDateTime) : Boolean;

    Function  IsChristmasDay(WorkDate : TDateTime) : Boolean;
    Function  IsNewYearsDay (WorkDate : TDateTime) : Boolean;
    Function  IsEasterSunday(WorkDate : TDateTime) : Boolean;

    Function  IsFirstOfTheMonth(WorkDate : TDateTime) : Boolean;
    Function  IsLastOfTheMonth(WorkDate : TDateTime) : Boolean;


    Function  IsHoliday(WorkDate : TDateTime) : Boolean;
    Function  IsBusinessDay(WorkDate : TDateTime) : Boolean;
    Function  IsBusinessHoliday(WorkDate : TDateTime) : Boolean;
    function  IsDateInPosNegRange(WorkDate, CompareDate : TDateTime; PositiveDays, NegativeDays : Integer) : Boolean;
    function  IsDateInPosNegBusinessRange(WorkDate, CompareDate : TDateTime; PositiveDays, NegativeDays : Integer) : Boolean;
    Procedure SetHolidayStringList(NewHolidayStringList : TStrings);
    Function  AddBusinessDays(NumberOfDays : Integer; WorkDate :TDateTime) : TDateTime;

    Function  IsEmptyDate(WorkDate : String) : Boolean;

    Procedure SetSystemTime(Hour, Minute, Second, Hundreths : Byte);
    Procedure SetSystemDate(Year : Word; Month, Day : Byte);

    { Added in V1.40 }
    Function SecondsBetweenDates(fStartDateTime, fEndDateTime : TDateTime) : Longint;
    Function DecodeTextDate(DateFormatStr, DateStr : String) : TDateTime;

    Function ConvertDayOfWeekToInt(DayOfWeek : TadrockDayOfWeek) : Integer;
    Function ConvertIntToDayOfWeek(DayOfWeek : Integer) : TAdrockDayofWeek;

    Function CenturyCutoff : Word;
    function ExpandYear(fyear : Word) : Word;

    Function  ReturnWeekofYear_Work(RealWeek : Boolean; Recursive : Integer;
                StartingDayOfWeek : Integer; WorkDate : TDateTime) : Word;
    Function  ReturnWeeksInYear(StartingDayOfWeek : Integer; Year : Integer) : Integer;

    Procedure ReturnYearsMonthsDaysBetweenDates(FirstDate, LastDate : TDateTime; var Negative : Boolean;
              var fYear, fMonth, fDay : Word);
    Function  FillandFormatDates(UseColor : Boolean; Color1, Color2 : TColor; EndStr : String;
              fYear, fMonth, fDay : Word) : String;

    Function  MailDateToDateTime(MailDateTimeString : string; var DateTime : TDateTime; var TimeZone : string) : Boolean;
  private
  end;

   { Routines that can be called by any code that includes this unit }

     procedure FreeAdrockDateClass;

     {*****************************************************************************}
     {** Create an instance of the AdrockDateClass, this instance does not get   **}
     {** freed, you must call FreeAdrockDateClass to do that. At the end of your **}
     {** program is the best place.                                              **}
     {*****************************************************************************}
     Procedure CreateAdrockDateClass;

    Function  ReturnDelphiDayOfWeek(StartingDayOfWeek, WeekDay : Integer) : Integer;
    Function  ReturnWeekDayName(StartingDayOfWeek, WeekDay : Integer) : String;
    Function  ReturnWeekofMonth(StartingDayOfWeek : Integer; WorkDate : TDateTime) : Word;
    Function  ReturnWeekofYear(StartingDayOfWeek : Integer; WorkDate : TDateTime) : Integer;

    Function  ReturnDayOfWeek(StartingDayOfWeek : Integer; WorkDate : TDateTime) : Word;
    Function  ReturnDayOfMonth(WorkDate : TDateTime) : Word;
    Function  ReturnDayOfYear(WorkDate : TDateTime)  : Word;

    Function  ReturnEasterSunday(Year : Word) : TDateTime;
    Function  ReturnMonth(WorkDate : TDateTime)  : Word;

    { Donated by Tim Boyd (timboyd@bigfoot.com) }
    function  ReturnFirstOfQuarter(const DateTime: TDateTime): TDateTime;
    { Donated by Tim Boyd (timboyd@bigfoot.com) }
    function  ReturnLastOfQuarter(const DateTime: TDateTime): TDateTime;

    Function  ReturnQuarter(WorkDate : TDateTime)  : Word;
    Function  ReturnYear(WorkDate : TDateTime) : Word;
    Function  ReturnCentury(WorkDate : TDateTime) : Word;
    Function  ReturnDayTh(WorkDate : TDateTime) : String;
    Function  ReturnDayThi(WorkDay : Integer) : String;
    Function  ReturnDaysAgo(WorkDate : TDateTime) : String;

    Function  ReturnWeeksAgo(StartingDayOfWeek : Integer; WorkDate : TDateTime) : String;
    Function  ReturnMonthsAgo(WorkDate : TDateTime) : String;
    Function  ReturnQuartersAgo(WorkDate : TDateTime) : String;
    Function  ReturnYearsAgo(WorkDate : TDateTime) : String;

    Function  AreDatesInSameMonth(FirstDate, SecondDate : TDateTime) : Boolean;
    Function  AreDatesInSameYear(FirstDate, SecondDate : TDateTime) : Boolean;
    Function  AreDatesInSameMonthAndYear(FirstDate, SecondDate : TDateTime) : Boolean;

    Function  ReturnBoundaryWeeksBetweenDates(StartingDayOfWeek : Integer; FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnBoundaryQuartersBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnBoundaryMonthsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnBoundaryYearsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;

    Function  ReturnDaysBetweenDates(FirstDate, SecondDate : TDateTime) : LongInt;
    Function  ReturnWeeksBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnMonthsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnQuartersBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;
    Function  ReturnYearsBetweenDates(FirstDate, SecondDate : TDateTime) : Integer;

    Function  IsValidAdrockDate(WorkDate : String) : Boolean;
    Function  IsValidAdrockDateTime(WorkDate : String) : Boolean;
    Function  IsValidAdrockTime(WorkDate : String) : Boolean;
    function  AdrockStrToDate(WorkDate : String) : TDateTime;
    function  AdrockStrToDateTime(WorkDate : String) : TDateTime;
    function  AdrockStrToTime(WorkDate : String) : TDateTime;

    function  AdrockDateToStr(WorkDate : TDateTime) : String;

    Function  IsValidDate(WorkDate : String) : Boolean;
    Function  IsLeapyear(WorkDate : TDateTime) : Boolean;
    function  IsLeapYeari(aYear : Integer) : Boolean;
    Function  IsDateInRange(WorkDate, StartDate, EndDate : TDateTime) : Boolean;

    Function  AddDays(NumberOfDays : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddWeeks(NumberOfWeeks : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddMonths(NumberOfMonths : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddQuarters(NumberOfQuarters : Integer; WorkDate :TDateTime) : TDateTime;
    Function  AddYears(NumberOfYears : Integer; WorkDate :TDateTime) : TDateTime;

    Function  FormatDate(FormatMask : String; WorkDate : TDateTime) : String;

    Function  DaysInMonth(WorkDate : TDateTime) : Word;
    Function  DaysInMonthi(Month, Year : Word) : Word;
    Function  DaysInYear(WorkDate : TDateTime) : Word;
    function  DaysInYeari(Year : Integer) : Word;
    Function  DaysLeftInMonth(WorkDate : TDateTime) : Word;
    function  DaysLeftInMonthi(Day, Month, Year : Integer) : Word;
    Function  DaysLeftInYear(WorkDate : TDateTime) : Word;
    Function  DaysLeftInYeari(Day, Month, Year : Integer) : Word;

    Function  AddDate(DateMask : String; NumberOfPeriods : Integer; WorkDate : TDatetime) : TDateTime;
    Function  DateDiff(DateMask : String; StartingDayOfWeek : Integer; FirstDate, SecondDate : TDatetime) : Longint;

    Function  AddTime(fDateTime : TDateTime; Hours, Minutes, Seconds : longint) : TDateTime;
    Procedure TimeDiff(fDateTime1, fDateTime2 : TDateTime;  var Hours, Mins, Secs : longint);

    Function  GetFirstofMonthWeekNumber(StartingDayOfMonth : Integer; WorkDate : TDateTime) : Integer;
    Function  ReturnPersonsAge_Work(Today, DOB : TDateTime) : Integer;
    Function  ReturnPersonsAge(DOB : TDateTime) : Integer;
    function  AgeStr(aDate: TDateTime): string;
    Function  CenturyCutoff : Word;
    function  ExpandYear(fyear : Word) : Word;

    Function  ReturnDateOrdinalDayOfWeek(StartOfMonth : Boolean; Week, WeekDay, Month, Year : Integer) : TDateTime;

    Function  ReturnDaysInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnWeeksInthePast(StartingDayOfWeek : Integer; WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnMonthsInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnQuartersInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;
    Function  ReturnYearsInthePast(WorkDate : TDateTime; TestDate : TDateTime) : String;

    Function  ReturnFirstAndLastOfAGivenWeek(WeekStart : TAdrockWeekDay; WeekNumberStyle : TAdrockWeekStyle;
        WeekNumber, Year : Integer; var FirstDate, LastDate : TDateTime): Boolean;
    Function  ReturnFirstOfAGivenWeek(WeekStart : TAdrockWeekDay; WeekNumberStyle : TAdrockWeekStyle;
        WeekNumber, Year : Integer): TDateTime;
    Function  ReturnLastOfAGivenWeek(WeekStart : TAdrockWeekDay; WeekNumberStyle : TAdrockWeekStyle;
        WeekNumber, Year : Integer): TDateTime;

    Function  ReturnFirstOfAWeek(StartingDayOfWeek: Integer; WorkDate : TDateTime) : TDateTime;
    Function  ReturnLastOfAWeek(StartingDayOfWeek: Integer; WorkDate : TDateTime) : TDateTime;

    Function  ReturnLastOfGivenMonth(ADate: TDateTime) : TDateTime;
    Function  ReturnFirstOfGivenMonth(ADate: TDateTime) : TDateTime;

    Function  ReturnFirstOfTheWeek : TDateTime;
    Function  ReturnLastOfTheWeek : TDateTime;

    Function  ReturnFirstOfTheMonth : TDateTime;
    Function  ReturnLastOfTheMonth : TDateTime;
    Function  ReturnFirstOfTheYear : TDateTime;
    Function  ReturnLastOfTheYear : TDateTime;

    Function  ReturnFirstOfNextWeek : TDateTime;
    Function  ReturnLastOfNextWeek : TDateTime;
    Function  ReturnFirstOfLastWeek : TDateTime;
    Function  ReturnLastOfLastWeek : TDateTime;
    Function  ReturnFirstOfLastMonth : TDateTime;
    Function  ReturnLastOfLastMonth : TDateTime;
    Function  ReturnFirstOfNextMonth : TDateTime;
    Function  ReturnLastOfNextMonth : TDateTime;

    Function  ReturnFirstOfLastYear : TDateTime;
    Function  ReturnLastOfLastYear : TDateTime;

    Function  ReturnFirstOf2MonthsAgo : TDateTime;
    Function  ReturnFirstOf3MonthsAgo : TDateTime;
    Function  ReturnFirstOf6MonthsAgo : TDateTime;

    function  IntToDate(WorkDate : Longint) : TDateTime;
    function  DateToInt(WorkDate : TDateTime) : Longint;

    { Added with Version 1.10 }
    Function  IsDateWithinRange(TestDate, FirstDate, LastDate : TDatetime)    : Boolean;
    Function  NextBusinessDay(RequiredDate : TDateTime)  : TDateTime;
    Function  PrevBusinessDay(RequiredDate : TDateTime)  : TDateTime;
    function  ReturnBusinessDaysBetweenDates(FirstDate, LastDate : TDatetime) : Integer;
    Function  VerbalDate(WorkDate : TDatetime) : String;

    Function  IsValidMonthName(MonthName : String) : Boolean;
    Function  IsValidDayName(DayName : String) : Boolean;
    Function  IsMonday(WorkDate : TDateTime) : Boolean;
    Function  IsTuesday(WorkDate : TDateTime) : Boolean;
    Function  IsWednesday(WorkDate : TDateTime) : Boolean;
    Function  IsThursday(WorkDate : TDateTime) : Boolean;
    Function  IsFriday(WorkDate : TDateTime) : Boolean;
    Function  IsSaturday(WorkDate : TDateTime) : Boolean;
    Function  IsSunday(WorkDate : TDateTime) : Boolean;

    Function  IsJanuary(WorkDate : TDateTime) : Boolean;
    Function  IsFebruary(WorkDate : TDateTime) : Boolean;
    Function  IsMarch(WorkDate : TDateTime) : Boolean;
    Function  IsApril(WorkDate : TDateTime) : Boolean;
    Function  IsMay(WorkDate : TDateTime) : Boolean;
    Function  IsJune(WorkDate : TDateTime) : Boolean;
    Function  IsJuly(WorkDate : TDateTime) : Boolean;
    Function  IsAugust(WorkDate : TDateTime) : Boolean;
    Function  IsSeptember(WorkDate : TDateTime) : Boolean;
    Function  IsOctober(WorkDate : TDateTime) : Boolean;
    Function  IsNovember(WorkDate : TDateTime) : Boolean;
    Function  IsDecember(WorkDate : TDateTime) : Boolean;

    Function  IsWeekend(WorkDate : TDateTime) : Boolean;
    Function  IsWeekday(WorkDate : TDateTime) : Boolean;

    Function  IsAM(WorkDate : TDateTime) : Boolean;
    Function  IsPM(WorkDate : TDateTime) : Boolean;
    Function  IsMorning(WorkDate : TDateTime) : Boolean;
    Function  IsAfternoon(WorkDate : TDateTime) : Boolean;

    Function  IsMidday(WorkDate : TDateTime) : Boolean;
    Function  IsMidNight(WorkDate : TDateTime) : Boolean;

    Function  IsChristmasDay(WorkDate : TDateTime) : Boolean;
    Function  IsNewYearsDay (WorkDate : TDateTime) : Boolean;
    Function  IsEasterSunday(WorkDate : TDateTime) : Boolean;

    Function  IsFirstOfTheMonth(WorkDate : TDateTime) : Boolean;
    Function  IsLastOfTheMonth(WorkDate : TDateTime) : Boolean;

    Function  IsBusinessDay(WorkDate : TDateTime) : Boolean;
    function  IsDateInPosNegRange(WorkDate, CompareDate : TDateTime; PositiveDays, NegativeDays : Integer) : Boolean;
    function  IsDateInPosNegBusinessRange(WorkDate, CompareDate : TDateTime; PositiveDays, NegativeDays : Integer) : Boolean;
    Function  AddBusinessDays(NumberOfDays : Integer; WorkDate :TDateTime) : TDateTime;

    Function  IsHoliday(WorkDate : TDateTime) : Boolean;
    Function  IsBusinessHoliday(WorkDate : TDateTime) : Boolean;
    Procedure SetHolidayStringList(NewHolidayStringList : TStrings);

    { Added in V1.20 }
    Function  IsEmptyDate(WorkDate : String) : Boolean;

    { Added in V1.30 }
    { Please refer to the HISTORY file why these functions have been removed }
    Procedure SetSystemTime(Hour, Minute, Second, Hundreths : Byte);
    Procedure SetSystemDate(Year : Word; Month, Day : Byte);

    { Added in V1.40 }
    Function SecondsBetweenDates(fStartDateTime, fEndDateTime : TDateTime) : Longint;
    Function DecodeTextDate(DateFormatStr, DateStr : String) : TDateTime;

    Function ConvertDayOfWeekToInt(DayOfWeek : TadrockDayOfWeek) : Integer;
    Function ConvertIntToDayOfWeek(DayOfWeek : Integer) : TAdrockDayofWeek;

    Procedure ReturnYearsMonthsDaysBetweenDates(FirstDate, LastDate : TDateTime; var Negative : Boolean;
                var fYear, fMonth, fDay : Word);
    Function  FillandFormatDates(UseColor : Boolean; Color1, Color2 : TColor; EndStr : String;
                fYear, fMonth, fDay : Word) : String;

    Function  MailDateToDateTime(MailDateTimeString : string; var DateTime : TDateTime; var TimeZone : string) : Boolean;

    Function  ConvertToJuliani(Year, Month, Day : Word) : Longint;
    Function  ConvertToJulian(Date : TDateTIme) : Longint;
    Function  ConvertFromJulian(Julian : Longint) : TDateTime;
    Function  ReturnDateOrder : TDateOrder;

    Function  GetDefaultStartDayOfWeek : TAdrockWeekDay;
    Function  GetDefaultWeek1          : TAdrockWeekStyle;

    Procedure SetDefaultStartDayOfWeek(StartDay : TAdrockWeekDay);
    Procedure SetDefaultWeek1(Week1 : TAdrockWeekStyle);

Copyright © Adrock Software - BYTE Computer & Software Limited - 1990-2010
*