differenceInCalendarQuarters.cjs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. exports.differenceInCalendarQuarters = differenceInCalendarQuarters;
  3. var _index = require("./_lib/normalizeDates.cjs");
  4. var _index2 = require("./getQuarter.cjs");
  5. /**
  6. * The {@link differenceInCalendarQuarters} function options.
  7. */
  8. /**
  9. * @name differenceInCalendarQuarters
  10. * @category Quarter Helpers
  11. * @summary Get the number of calendar quarters between the given dates.
  12. *
  13. * @description
  14. * Get the number of calendar quarters between the given dates.
  15. *
  16. * @param laterDate - The later date
  17. * @param earlierDate - The earlier date
  18. * @param options - An object with options
  19. *
  20. * @returns The number of calendar quarters
  21. *
  22. * @example
  23. * // How many calendar quarters are between 31 December 2013 and 2 July 2014?
  24. * const result = differenceInCalendarQuarters(
  25. * new Date(2014, 6, 2),
  26. * new Date(2013, 11, 31)
  27. * )
  28. * //=> 3
  29. */
  30. function differenceInCalendarQuarters(laterDate, earlierDate, options) {
  31. const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
  32. options?.in,
  33. laterDate,
  34. earlierDate,
  35. );
  36. const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();
  37. const quartersDiff =
  38. (0, _index2.getQuarter)(laterDate_) - (0, _index2.getQuarter)(earlierDate_);
  39. return yearsDiff * 4 + quartersDiff;
  40. }