DaysInMonth Routines
Returns the number of days in the Month represented by the given Date.

Unit
QESBPCSDateTime

Overloaded Variants
Function DaysInMonth(const DT: TDateTime): Byte;
Function DaysInMonth(const Month, Year: Word): Byte;
Function DaysInMonth(const Month, Year: Integer): Byte;

Declaration
Function DaysInMonth(const DT: TDateTime): Byte;

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 Routines

Implementation

function DaysInMonth (const DT: TDateTime): Byte;
begin
     case Date2Month (DT) of
          2: if DateIsLeapYear (DT) then
                    Result := 29
               else
                    Result := 28;
          4, 6, 9, 11: Result := 30;
     else
          Result := 31;
     end;
End;

Declaration
Function DaysInMonth(const Month, Year: Word): Byte;

Implementation

function DaysInMonth (const Month, Year: Word): Byte;
begin
     if (Month < 1) or (Month > 12) then
          raise EConvertError.Create (rsInvalidMonth);

     case Month of
          2: if IsLeapYear (Year) then
                    Result := 29
               else
                    Result := 28;
          4, 6, 9, 11: Result := 30;
     else
          Result := 31;
     end;
End;

Declaration
Function DaysInMonth(const Month, Year: Integer): Byte;

Implementation

function DaysInMonth (const Month, Year: Integer): Byte;
begin
     if (Month < 1) or (Month > 12) then
          raise EConvertError.Create (rsInvalidMonth);

     case Month of
          2: if IsLeapYear (Year) then
                    Result := 29
               else
                    Result := 28;
          4, 6, 9, 11: Result := 30;
     else
          Result := 31;
     end;
End;


HTML generated by Time2HELP
http://www.time2help.com