52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
export function startOfDay(d) {
|
|
const x = new Date(d);
|
|
x.setHours(0, 0, 0, 0);
|
|
return x;
|
|
}
|
|
|
|
export function sameDay(a, b) {
|
|
return a.getFullYear() === b.getFullYear()
|
|
&& a.getMonth() === b.getMonth()
|
|
&& a.getDate() === b.getDate();
|
|
}
|
|
|
|
export function addDays(d, n) {
|
|
const x = new Date(d);
|
|
x.setDate(x.getDate() + n);
|
|
return startOfDay(x);
|
|
}
|
|
|
|
/** Poniedziałek jako pierwszy dzień tygodnia (PL) */
|
|
export function startOfWeekMonday(d) {
|
|
const date = startOfDay(d);
|
|
const day = date.getDay();
|
|
const diff = day === 0 ? -6 : 1 - day;
|
|
return addDays(date, diff);
|
|
}
|
|
|
|
export function startOfMonth(d) {
|
|
const x = new Date(d.getFullYear(), d.getMonth(), 1);
|
|
return startOfDay(x);
|
|
}
|
|
|
|
export function addMonths(d, n) {
|
|
const x = new Date(d);
|
|
x.setMonth(x.getMonth() + n);
|
|
return startOfDay(x);
|
|
}
|
|
|
|
export function addWeeks(d, n) {
|
|
return addDays(d, n * 7);
|
|
}
|
|
|
|
export function weekContains(weekStart, d) {
|
|
const t = startOfDay(d).getTime();
|
|
const ws = weekStart.getTime();
|
|
const we = addDays(weekStart, 6).getTime();
|
|
return t >= ws && t <= we;
|
|
}
|
|
|
|
export function sameMonth(a, b) {
|
|
return a.getMonth() === b.getMonth() && a.getFullYear() === b.getFullYear();
|
|
}
|