@technobuddha/library
Version: 
A large library of useful functions
18 lines • 1.84 kB
JavaScript
import { day, daysPerWeek } from "./date.js";
import { modulo } from "./modulo.js";
/**
 * Determine the start of the week for a date
 * @param input - The date
 * @param options - see {@link DateOptions}
 * @defaultValue utc false
 * @returns The date value for midnight on the first day of the specified week
 * @group Time
 * @category Week
 */
export function beginningOfWeek(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVnaW5uaW5nLW9mLXdlZWsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmVnaW5uaW5nLW9mLXdlZWsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixLQUFXLEVBQ1gsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFrQixFQUFFO0lBRTlELElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLElBQUksSUFBSSxDQUNiLElBQUksQ0FBQyxHQUFHLENBQ04sS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUN0QixLQUFLLENBQUMsV0FBVyxFQUFFLEVBQ25CLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLFdBQVcsR0FBRyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQzNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUNiLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFDbkIsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUNoQixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLEdBQUcsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUNyRixDQUFDO0FBQ0osQ0FBQyJ9