@thi.ng/date 2.5.5 → 2.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/duration.js CHANGED
@@ -1,99 +1,55 @@
1
- import { DAY, HOUR, MINUTE, MONTH, PERIODS, SECOND, WEEK, YEAR, } from "./api.js";
2
- /**
3
- * Decomposes given duration (in milliseconds) into a tuple of: `[year, month,
4
- * day, hour, minute, second, millis]`.
5
- *
6
- * @param dur -
7
- */
8
- export const decomposeDuration = (dur) => {
9
- const year = (dur / YEAR) | 0;
10
- dur -= year * YEAR;
11
- const month = (dur / MONTH) | 0;
12
- dur -= month * MONTH;
13
- const day = (dur / DAY) | 0;
14
- dur -= day * DAY;
15
- const hour = (dur / HOUR) | 0;
16
- dur -= hour * HOUR;
17
- const min = (dur / MINUTE) | 0;
18
- dur -= min * MINUTE;
19
- const sec = (dur / SECOND) | 0;
20
- dur -= sec * SECOND;
21
- return [year, month, day, hour, min, sec, dur];
1
+ import {
2
+ DAY,
3
+ HOUR,
4
+ MINUTE,
5
+ MONTH,
6
+ PERIODS,
7
+ SECOND,
8
+ WEEK,
9
+ YEAR
10
+ } from "./api.js";
11
+ const decomposeDuration = (dur) => {
12
+ const year = dur / YEAR | 0;
13
+ dur -= year * YEAR;
14
+ const month = dur / MONTH | 0;
15
+ dur -= month * MONTH;
16
+ const day = dur / DAY | 0;
17
+ dur -= day * DAY;
18
+ const hour = dur / HOUR | 0;
19
+ dur -= hour * HOUR;
20
+ const min = dur / MINUTE | 0;
21
+ dur -= min * MINUTE;
22
+ const sec = dur / SECOND | 0;
23
+ dur -= sec * SECOND;
24
+ return [year, month, day, hour, min, sec, dur];
22
25
  };
23
- /**
24
- * Computes a duration (in milliseconds) from given parts. Also see
25
- * {@link decomposeDuration}.
26
- *
27
- * @example
28
- * ```ts
29
- * composeDuration({ h: 12, m: 34, s: 56 })
30
- * // 45296000
31
- * ```
32
- *
33
- * @param parts
34
- */
35
- export const composeDuration = (parts) => {
36
- let dur = (parts.y || 0) * YEAR;
37
- dur += (parts.M || 0) * MONTH;
38
- dur += (parts.d || 0) * DAY;
39
- dur += (parts.h || 0) * HOUR;
40
- dur += (parts.m || 0) * MINUTE;
41
- dur += (parts.s || 0) * SECOND;
42
- dur += parts.t || 0;
43
- return dur;
26
+ const composeDuration = (parts) => {
27
+ let dur = (parts.y || 0) * YEAR;
28
+ dur += (parts.M || 0) * MONTH;
29
+ dur += (parts.d || 0) * DAY;
30
+ dur += (parts.h || 0) * HOUR;
31
+ dur += (parts.m || 0) * MINUTE;
32
+ dur += (parts.s || 0) * SECOND;
33
+ dur += parts.t || 0;
34
+ return dur;
35
+ };
36
+ const durationAs = (prec, dur) => dur / PERIODS[prec];
37
+ const asSeconds = (dur) => dur / SECOND;
38
+ const asMinutes = (dur) => dur / MINUTE;
39
+ const asHours = (dur) => dur / HOUR;
40
+ const asDays = (dur) => dur / DAY;
41
+ const asWeeks = (dur) => dur / WEEK;
42
+ const asMonths = (dur) => dur / MONTH;
43
+ const asYears = (dur) => dur / YEAR;
44
+ export {
45
+ asDays,
46
+ asHours,
47
+ asMinutes,
48
+ asMonths,
49
+ asSeconds,
50
+ asWeeks,
51
+ asYears,
52
+ composeDuration,
53
+ decomposeDuration,
54
+ durationAs
44
55
  };
45
- /**
46
- * Calculates the given duration in units of given `prec`ision.
47
- *
48
- * @example
49
- * ```ts
50
- * durationAs("d", difference("2023-02-01T12:00:00Z", "2023-01-01"))
51
- * // 31.5
52
- * ```
53
- *
54
- * @param prec
55
- * @param dur
56
- */
57
- export const durationAs = (prec, dur) => dur / PERIODS[prec];
58
- /**
59
- * Returns duration in seconds.
60
- *
61
- * @param dur
62
- */
63
- export const asSeconds = (dur) => dur / SECOND;
64
- /**
65
- * Returns duration in minutes.
66
- *
67
- * @param dur
68
- */
69
- export const asMinutes = (dur) => dur / MINUTE;
70
- /**
71
- * Returns duration in hours.
72
- *
73
- * @param dur
74
- */
75
- export const asHours = (dur) => dur / HOUR;
76
- /**
77
- * Returns duration in days.
78
- *
79
- * @param dur
80
- */
81
- export const asDays = (dur) => dur / DAY;
82
- /**
83
- * Returns duration in weeks.
84
- *
85
- * @param dur
86
- */
87
- export const asWeeks = (dur) => dur / WEEK;
88
- /**
89
- * Returns duration in months (as defined by {@link MONTH})..
90
- *
91
- * @param dur
92
- */
93
- export const asMonths = (dur) => dur / MONTH;
94
- /**
95
- * Returns duration in years (as defined by {@link YEAR}).
96
- *
97
- * @param dur
98
- */
99
- export const asYears = (dur) => dur / YEAR;