Sign in Join
FPDoc Onlineexperiment

MonthsBetween function

In unit DateUtils

Calculate the number of whole months between two TDateTime values.

Declaration

pascal
function MonthsBetween(const ANow: TDateTime; const AThen: TDateTime; 
 AExact: Boolean=False): Integer

Arguments

ANow

First moment in time.

AThen

Second moment in time.

AExact

Function result

Number of whole months between ANow and AThen.

Description

MonthsBetween returns the number of whole months between ANow and AThen. This number is an approximation, based on an average number of days of 30.4375 per month (average over 4 years). This means the fractional part of a month is dropped.

See also

Example: ex56

pascal
Program Example56;

{ This program demonstrates the MonthsBetween function }

Uses SysUtils,DateUtils;

Procedure Test(ANow,AThen : TDateTime);

begin
 Write('Number of months between ');
 Write(DateToStr(AThen),' and ',DateToStr(ANow));
 Writeln(' : ',MonthsBetween(ANow,AThen));
end;

Var
  D1,D2 : TDateTime;

Begin
  D1:=Today;
  D2:=Today-364;
  Test(D1,D2);
  D2:=Today-365;
  Test(D1,D2);
  D2:=Today-366;
  Test(D1,D2);
  D2:=Today-390;
  Test(D1,D2);
  D2:=Today-368;
  Test(D1,D2);
  D2:=Today-1000;
  Test(D1,D2);
End.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.