@technobuddha/library
Version:
A large library of useful functions
19 lines • 1.88 kB
JavaScript
import { day, daysPerWeek } from "./constants.js";
import { modulo } from "./modulo.js";
/**
* Determine the start of the week for a date
*
* @param input - The date
* @param options - see {@link BeginningOfWeekOptions}
* @defaultValue utc false
* @returns The date value for midnight on the first day of the specified week
* @group Time
* @category Week
*/
export function getBeginningOfWeek(input, { utc = false, firstDayOfWeek = day.sunday } = {}) {
if (utc) {
return new Date(Date.UTC(input.getUTCFullYear(), input.getUTCMonth(), input.getUTCDate() - modulo(input.getUTCDay() + daysPerWeek - firstDayOfWeek, daysPerWeek)));
}
return new Date(input.getFullYear(), input.getMonth(), input.getDate() - modulo(input.getDay() + daysPerWeek - firstDayOfWeek, daysPerWeek));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWJlZ2lubmluZy1vZi13ZWVrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldC1iZWdpbm5pbmctb2Ytd2Vlay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFlckM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxLQUFXLEVBQ1gsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUE2QixFQUFFO0lBRXpFLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLElBQUksSUFBSSxDQUNiLElBQUksQ0FBQyxHQUFHLENBQ04sS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUN0QixLQUFLLENBQUMsV0FBVyxFQUFFLEVBQ25CLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLFdBQVcsR0FBRyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQzNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUNiLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFDbkIsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUNoQixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLEdBQUcsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUNyRixDQUFDO0FBQ0osQ0FBQyJ9