/* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ // @ts-nocheck import { normalizeDates } from '../_lib/normalizeDates/index.ts'; import type { ContextOptions, DateArg } from '../types.ts'; /** * The {@link differenceInCalendarMonths} function options. */ export interface DifferenceInCalendarMonthsOptions extends ContextOptions {} /** * @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. * * @param laterDate - The later date * @param earlierDate - The earlier date * @param options - An object with options * * @returns The number of calendar months * * @example * // How many calendar months are between 31 January 2014 and 1 September 2014? * const result = differenceInCalendarMonths( * new Date(2014, 8, 1), * new Date(2014, 0, 31) * ) * //=> 8 */ export function differenceInCalendarMonths( laterDate: DateArg & {}, earlierDate: DateArg & {}, options?: DifferenceInCalendarMonthsOptions | undefined, ): number { const [laterDate_, earlierDate_] = normalizeDates(options?.in, laterDate, earlierDate); const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear(); const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth(); return yearsDiff * 12 + monthsDiff; } /* eslint-enable */