import toDate from '../toDate/index' import requiredArgs from '../_lib/requiredArgs/index' /** * @name differenceInCalendarMonths * @category Month Helpers * @summary Get the number of calendar months between the given dates. * * @description * Get the number of calendar months between the given dates. * * ### v2.0.0 breaking changes: * * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). * * @param {Date|Number} dateLeft - the later date * @param {Date|Number} dateRight - the earlier date * @returns {Number} the number of calendar months * @throws {TypeError} 2 arguments required * * @example * // How many calendar months are between 31 January 2014 and 1 September 2014? * var result = differenceInCalendarMonths( * new Date(2014, 8, 1), * new Date(2014, 0, 31) * ) * //=> 8 */ export default function differenceInCalendarMonths( dirtyDateLeft: Date | number, dirtyDateRight: Date | number ): number { requiredArgs(2, arguments) const dateLeft = toDate(dirtyDateLeft) const dateRight = toDate(dirtyDateRight) const yearDiff = dateLeft.getFullYear() - dateRight.getFullYear() const monthDiff = dateLeft.getMonth() - dateRight.getMonth() return yearDiff * 12 + monthDiff }