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