differenceInCalendarMonths.cjs 1.2 KB

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