import { differenceInCalendarWeeks } from "./differenceInCalendarWeeks.mjs"; import { lastDayOfMonth } from "./lastDayOfMonth.mjs"; import { startOfMonth } from "./startOfMonth.mjs"; /** * The {@link getWeeksInMonth} function options. */ /** * @name getWeeksInMonth * @category Week Helpers * @summary Get the number of calendar weeks a month spans. * * @description * Get the number of calendar weeks the month in the given date spans. * * @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). * * @param date - The given date * @param options - An object with options. * * @returns The number of calendar weeks * * @example * // How many calendar weeks does February 2015 span? * const result = getWeeksInMonth(new Date(2015, 1, 8)) * //=> 4 * * @example * // If the week starts on Monday, * // how many calendar weeks does July 2017 span? * const result = getWeeksInMonth(new Date(2017, 6, 5), { weekStartsOn: 1 }) * //=> 6 */ export function getWeeksInMonth(date, options) { return ( differenceInCalendarWeeks( lastDayOfMonth(date), startOfMonth(date), options, ) + 1 ); } // Fallback for modularized imports: export default getWeeksInMonth;