source: node_modules/d3-time/src/year.js

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

Prototype 1.1

  • Property mode set to 100644
File size: 1.4 KB
Line 
1import {timeInterval} from "./interval.js";
2
3export const timeYear = timeInterval((date) => {
4 date.setMonth(0, 1);
5 date.setHours(0, 0, 0, 0);
6}, (date, step) => {
7 date.setFullYear(date.getFullYear() + step);
8}, (start, end) => {
9 return end.getFullYear() - start.getFullYear();
10}, (date) => {
11 return date.getFullYear();
12});
13
14// An optimized implementation for this simple case.
15timeYear.every = (k) => {
16 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
17 date.setFullYear(Math.floor(date.getFullYear() / k) * k);
18 date.setMonth(0, 1);
19 date.setHours(0, 0, 0, 0);
20 }, (date, step) => {
21 date.setFullYear(date.getFullYear() + step * k);
22 });
23};
24
25export const timeYears = timeYear.range;
26
27export const utcYear = timeInterval((date) => {
28 date.setUTCMonth(0, 1);
29 date.setUTCHours(0, 0, 0, 0);
30}, (date, step) => {
31 date.setUTCFullYear(date.getUTCFullYear() + step);
32}, (start, end) => {
33 return end.getUTCFullYear() - start.getUTCFullYear();
34}, (date) => {
35 return date.getUTCFullYear();
36});
37
38// An optimized implementation for this simple case.
39utcYear.every = (k) => {
40 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
41 date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
42 date.setUTCMonth(0, 1);
43 date.setUTCHours(0, 0, 0, 0);
44 }, (date, step) => {
45 date.setUTCFullYear(date.getUTCFullYear() + step * k);
46 });
47};
48
49export const utcYears = utcYear.range;
Note: See TracBrowser for help on using the repository browser.