12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { normalizeDates } from "./_lib/normalizeDates.js";
- import { startOfWeek } from "./startOfWeek.js";
- /**
- * The {@link isSameWeek} function options.
- */
- /**
- * @name isSameWeek
- * @category Week Helpers
- * @summary Are the given dates in the same week (and month and year)?
- *
- * @description
- * Are the given dates in the same week (and month and year)?
- *
- * @param laterDate - The first date to check
- * @param earlierDate - The second date to check
- * @param options - An object with options
- *
- * @returns The dates are in the same week (and month and year)
- *
- * @example
- * // Are 31 August 2014 and 4 September 2014 in the same week?
- * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))
- * //=> true
- *
- * @example
- * // If week starts with Monday,
- * // are 31 August 2014 and 4 September 2014 in the same week?
- * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {
- * weekStartsOn: 1
- * })
- * //=> false
- *
- * @example
- * // Are 1 January 2014 and 1 January 2015 in the same week?
- * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))
- * //=> false
- */
- export function isSameWeek(laterDate, earlierDate, options) {
- const [laterDate_, earlierDate_] = normalizeDates(
- options?.in,
- laterDate,
- earlierDate,
- );
- return (
- +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options)
- );
- }
- // Fallback for modularized imports:
- export default isSameWeek;
|