import { getQuarter } from "./getQuarter.mjs"; import { toDate } from "./toDate.mjs"; /** * @name differenceInCalendarQuarters * @category Quarter Helpers * @summary Get the number of calendar quarters between the given dates. * * @description * Get the number of calendar quarters between the given dates. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). * * @param dateLeft - The later date * @param dateRight - The earlier date * @returns The number of calendar quarters * * @example * // How many calendar quarters are between 31 December 2013 and 2 July 2014? * const result = differenceInCalendarQuarters( * new Date(2014, 6, 2), * new Date(2013, 11, 31) * ) * //=> 3 */ export function differenceInCalendarQuarters(dateLeft, dateRight) { const _dateLeft = toDate(dateLeft); const _dateRight = toDate(dateRight); const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear(); const quarterDiff = getQuarter(_dateLeft) - getQuarter(_dateRight); return yearDiff * 4 + quarterDiff; } // Fallback for modularized imports: export default differenceInCalendarQuarters;