isSameISOWeekYear.mjs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import { startOfISOWeekYear } from "./startOfISOWeekYear.mjs";
  2. /**
  3. * @name isSameISOWeekYear
  4. * @category ISO Week-Numbering Year Helpers
  5. * @summary Are the given dates in the same ISO week-numbering year?
  6. *
  7. * @description
  8. * Are the given dates in the same ISO week-numbering year?
  9. *
  10. * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
  11. *
  12. * @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).
  13. *
  14. * @param dateLeft - The first date to check
  15. * @param dateRight - The second date to check
  16. *
  17. * @returns The dates are in the same ISO week-numbering year
  18. *
  19. * @example
  20. * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?
  21. * const result = isSameISOWeekYear(new Date(2003, 11, 29), new Date(2005, 0, 2))
  22. * //=> true
  23. */
  24. export function isSameISOWeekYear(dateLeft, dateRight) {
  25. const dateLeftStartOfYear = startOfISOWeekYear(dateLeft);
  26. const dateRightStartOfYear = startOfISOWeekYear(dateRight);
  27. return +dateLeftStartOfYear === +dateRightStartOfYear;
  28. }
  29. // Fallback for modularized imports:
  30. export default isSameISOWeekYear;