source: node_modules/d3-time/src/week.js@ e4c61dd

Last change on this file since e4c61dd was e4c61dd, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Prototype 1.1

  • Property mode set to 100644
File size: 2.0 KB
Line 
1import {timeInterval} from "./interval.js";
2import {durationMinute, durationWeek} from "./duration.js";
3
4function timeWeekday(i) {
5 return timeInterval((date) => {
6 date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
7 date.setHours(0, 0, 0, 0);
8 }, (date, step) => {
9 date.setDate(date.getDate() + step * 7);
10 }, (start, end) => {
11 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
12 });
13}
14
15export const timeSunday = timeWeekday(0);
16export const timeMonday = timeWeekday(1);
17export const timeTuesday = timeWeekday(2);
18export const timeWednesday = timeWeekday(3);
19export const timeThursday = timeWeekday(4);
20export const timeFriday = timeWeekday(5);
21export const timeSaturday = timeWeekday(6);
22
23export const timeSundays = timeSunday.range;
24export const timeMondays = timeMonday.range;
25export const timeTuesdays = timeTuesday.range;
26export const timeWednesdays = timeWednesday.range;
27export const timeThursdays = timeThursday.range;
28export const timeFridays = timeFriday.range;
29export const timeSaturdays = timeSaturday.range;
30
31function utcWeekday(i) {
32 return timeInterval((date) => {
33 date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
34 date.setUTCHours(0, 0, 0, 0);
35 }, (date, step) => {
36 date.setUTCDate(date.getUTCDate() + step * 7);
37 }, (start, end) => {
38 return (end - start) / durationWeek;
39 });
40}
41
42export const utcSunday = utcWeekday(0);
43export const utcMonday = utcWeekday(1);
44export const utcTuesday = utcWeekday(2);
45export const utcWednesday = utcWeekday(3);
46export const utcThursday = utcWeekday(4);
47export const utcFriday = utcWeekday(5);
48export const utcSaturday = utcWeekday(6);
49
50export const utcSundays = utcSunday.range;
51export const utcMondays = utcMonday.range;
52export const utcTuesdays = utcTuesday.range;
53export const utcWednesdays = utcWednesday.range;
54export const utcThursdays = utcThursday.range;
55export const utcFridays = utcFriday.range;
56export const utcSaturdays = utcSaturday.range;
Note: See TracBrowser for help on using the repository browser.