Search
View source code
Display the source code in std/datetime/date.d from which this page was generated on github.
Report a bug
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

# Function `std.datetime.date.Date.diffMonths`

Returns the difference between the two `Date`s in months.

``` int diffMonths (   Date rhs ) pure nothrow @nogc @safe const; ```

To get the difference in years, subtract the year property of two `Date`s. To get the difference in days or weeks, subtract the `Date`s themselves and use the `Duration` that results. Because converting between months and smaller units requires a specific date (which `Duration`s don't have), getting the difference in months requires some math using both the year and month properties, so this is a convenience function for getting the difference in months.

Note that the number of days in the months or how far into the month either `Date` is is irrelevant. It is the difference in the month property combined with the difference in years * 12. So, for instance, December 31st and January 1st are one month apart just as December 1st and January 31st are one month apart.

## Parameters

NameDescription
rhs The `Date` to subtract from this one.

## Example

``````writeln(Date(1999, 2, 1).diffMonths(Date(1999, 1, 31))); // 1
writeln(Date(1999, 1, 31).diffMonths(Date(1999, 2, 1))); // -1
writeln(Date(1999, 3, 1).diffMonths(Date(1999, 1, 1))); // 2
writeln(Date(1999, 1, 1).diffMonths(Date(1999, 3, 31))); // -2

``````