| GetLastDayOfMonth Routines | 
Unit
QESBPCSDateTime
| Overloaded Variants | 
| Function GetLastDayOfMonth(const DT: TDateTime): TDateTime; | 
| Function GetLastDayOfMonth(const Month, Year: Word): TDateTime; | 
| Function GetLastDayOfMonth(const Month, Year: Integer): TDateTime; | 
Declaration
Function GetLastDayOfMonth(const DT: TDateTime): TDateTime;
Description
Alternatively for a given Month Year.
| Parameters | 
| DT | Date/Time to process. | 
| Month | Month in given year, 1 = Jan, 12 = Dec. | 
| Year | 4-digit Year, such as 1999. | 
Category
Date/Time Arithmetic Routines
Month Based Arithmetic RoutinesImplementation
 
| function GetLastDayOfMonth (const DT: TDateTime): TDateTime;
var
     D, M, Y: Integer;
begin
     OptDecodeDateI (DT, Y, M, D);
     case M of
          2:
               begin
                    if IsLeapYear (Y) then
                         D := 29
                    else
                         D := 28;
               end;
          4, 6, 9, 11: D := 30
     else
          D := 31;
     end;
     Result := OptEncodeDateI (Y, M, D) + Frac (DT);
End; | 
Declaration
Function GetLastDayOfMonth(const Month, Year: Word): TDateTime;Implementation
 
| function GetLastDayOfMonth (const Month, Year: Word): TDateTime;
var
     D: Word;
begin
     if (Month < 1) or (Month > 12) then
          raise EConvertError.Create (rsInvalidMonth);
     case Month of
          2:
               begin
                    if IsLeapYear (Year) then
                         D := 29
                    else
                         D := 28;
               end;
          4, 6, 9, 11: D := 30
     else
          D := 31;
     end;
     Result := OptEncodeDateW (Year, Month, D);
End; | 
Declaration
Function GetLastDayOfMonth(const Month, Year: Integer): TDateTime;Implementation
 
| function GetLastDayOfMonth (const Month, Year: Integer): TDateTime;
var
     D: Integer;
begin
     if (Month < 1) or (Month > 12) then
          raise EConvertError.Create (rsInvalidMonth);
     case Month of
          2:
               begin
                    if IsLeapYear (Year) then
                         D := 29
                    else
                         D := 28;
               end;
          4, 6, 9, 11: D := 30
     else
          D := 31;
     end;
     Result := OptEncodeDateI (Year, Month, D);
End; | 
|  |