36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
import {timeInterval} from "./interval.js";
|
|
import {durationDay, durationMinute} from "./duration.js";
|
|
|
|
export const timeDay = timeInterval(
|
|
date => date.setHours(0, 0, 0, 0),
|
|
(date, step) => date.setDate(date.getDate() + step),
|
|
(start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
|
|
date => date.getDate() - 1
|
|
);
|
|
|
|
export const timeDays = timeDay.range;
|
|
|
|
export const utcDay = timeInterval((date) => {
|
|
date.setUTCHours(0, 0, 0, 0);
|
|
}, (date, step) => {
|
|
date.setUTCDate(date.getUTCDate() + step);
|
|
}, (start, end) => {
|
|
return (end - start) / durationDay;
|
|
}, (date) => {
|
|
return date.getUTCDate() - 1;
|
|
});
|
|
|
|
export const utcDays = utcDay.range;
|
|
|
|
export const unixDay = timeInterval((date) => {
|
|
date.setUTCHours(0, 0, 0, 0);
|
|
}, (date, step) => {
|
|
date.setUTCDate(date.getUTCDate() + step);
|
|
}, (start, end) => {
|
|
return (end - start) / durationDay;
|
|
}, (date) => {
|
|
return Math.floor(date / durationDay);
|
|
});
|
|
|
|
export const unixDays = unixDay.range;
|