import getQuarter from '../getQuarter/index' import toDate from '../toDate/index' import requiredArgs from '../_lib/requiredArgs/index' /** * @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. * * ### 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 quarters * @throws {TypeError} 2 arguments required * * @example * // How many calendar quarters are between 31 December 2013 and 2 July 2014? * var result = differenceInCalendarQuarters( * new Date(2014, 6, 2), * new Date(2013, 11, 31) * ) * //=> 3 */ export default function differenceInCalendarQuarters( 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 quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight) return yearDiff * 4 + quarterDiff }