@spinajs/util 2.0.409 → 2.0.411
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/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/timespan.d.ts +154 -0
- package/lib/cjs/timespan.d.ts.map +1 -0
- package/lib/cjs/timespan.js +464 -0
- package/lib/cjs/timespan.js.map +1 -0
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +1 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/timespan.d.ts +154 -0
- package/lib/mjs/timespan.d.ts.map +1 -0
- package/lib/mjs/timespan.js +460 -0
- package/lib/mjs/timespan.js.map +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +2 -2
package/lib/cjs/index.d.ts
CHANGED
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -21,4 +21,5 @@ __exportStar(require("./args.js"), exports);
|
|
|
21
21
|
__exportStar(require("./fp.js"), exports);
|
|
22
22
|
__exportStar(require("./string.js"), exports);
|
|
23
23
|
__exportStar(require("./func.js"), exports);
|
|
24
|
+
__exportStar(require("./timespan.js"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,4CAA0B;AAC1B,gDAA8B"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
export interface TimeLike {
|
|
3
|
+
days?: number;
|
|
4
|
+
hours?: number;
|
|
5
|
+
minutes?: number;
|
|
6
|
+
seconds?: number;
|
|
7
|
+
milliseconds?: number;
|
|
8
|
+
}
|
|
9
|
+
export type TimeSpanLike = number | string | TimeLike | TimeSpan;
|
|
10
|
+
export declare class TimeSpan {
|
|
11
|
+
static readonly MILLIS_PER_SECOND = 1000;
|
|
12
|
+
static readonly MILLIS_PER_MINUTE: number;
|
|
13
|
+
static readonly MILLIS_PER_HOUR: number;
|
|
14
|
+
static readonly MILLIS_PER_DAY: number;
|
|
15
|
+
static readonly ZERO: TimeSpan;
|
|
16
|
+
static readonly MAX_VALUE: TimeSpan;
|
|
17
|
+
static readonly MIN_VALUE: TimeSpan;
|
|
18
|
+
private static _TIMEZONE_OFFSET;
|
|
19
|
+
static get TIMEZONE_OFFSET(): TimeSpan;
|
|
20
|
+
private readonly _millis;
|
|
21
|
+
constructor(millis: number);
|
|
22
|
+
get milliseconds(): number;
|
|
23
|
+
get seconds(): number;
|
|
24
|
+
get minutes(): number;
|
|
25
|
+
get hours(): number;
|
|
26
|
+
get days(): number;
|
|
27
|
+
get totalDays(): number;
|
|
28
|
+
get totalHours(): number;
|
|
29
|
+
get totalMinutes(): number;
|
|
30
|
+
get totalSeconds(): number;
|
|
31
|
+
get totalMilliseconds(): number;
|
|
32
|
+
add(ts: TimeSpan): TimeSpan;
|
|
33
|
+
subtract(ts: TimeSpan): TimeSpan;
|
|
34
|
+
addDays(value: number): TimeSpan;
|
|
35
|
+
subtractDays(value: number): TimeSpan;
|
|
36
|
+
addHours(value: number): TimeSpan;
|
|
37
|
+
subtractHours(value: number): TimeSpan;
|
|
38
|
+
addMinutes(value: number): TimeSpan;
|
|
39
|
+
subtractMinutes(value: number): TimeSpan;
|
|
40
|
+
addSeconds(value: number): TimeSpan;
|
|
41
|
+
addMilliseconds(value: number): TimeSpan;
|
|
42
|
+
subtractSeconds(value: number): TimeSpan;
|
|
43
|
+
subtractMilliseconds(value: number): TimeSpan;
|
|
44
|
+
negate(): TimeSpan;
|
|
45
|
+
equals(value?: any): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Compares this TimeSpan with another TimeSpan
|
|
48
|
+
* @returns -1 if this < other, 0 if equal, 1 if this > other
|
|
49
|
+
*/
|
|
50
|
+
compareTo(other: TimeSpan): number;
|
|
51
|
+
/**
|
|
52
|
+
* Checks if this TimeSpan is greater than another
|
|
53
|
+
*/
|
|
54
|
+
greaterThan(other: TimeSpan): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Checks if this TimeSpan is greater than or equal to another
|
|
57
|
+
*/
|
|
58
|
+
greaterThanOrEqual(other: TimeSpan): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Checks if this TimeSpan is less than another
|
|
61
|
+
*/
|
|
62
|
+
lessThan(other: TimeSpan): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Checks if this TimeSpan is less than or equal to another
|
|
65
|
+
*/
|
|
66
|
+
lessThanOrEqual(other: TimeSpan): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Checks if the time-of-day represented by this TimeSpan falls within a date range
|
|
69
|
+
* This treats the TimeSpan as hours:minutes:seconds from midnight
|
|
70
|
+
* @param startDate - The start of the date range
|
|
71
|
+
* @param endDate - The end of the date range
|
|
72
|
+
* @returns true if the time-of-day is within the range on any day in the range
|
|
73
|
+
*/
|
|
74
|
+
isTimeInRange(startDate: Date, endDate: Date): boolean;
|
|
75
|
+
isTimeInRange(startDateTime: DateTime, endDateTime: DateTime): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Checks if this TimeSpan (as a time-of-day) falls between two times
|
|
78
|
+
* @param startTime - Start time as TimeSpan
|
|
79
|
+
* @param endTime - End time as TimeSpan
|
|
80
|
+
* @returns true if this time is within the range
|
|
81
|
+
*/
|
|
82
|
+
isBetween(startTime: TimeSpan, endTime: TimeSpan): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Returns the absolute value of this TimeSpan
|
|
85
|
+
*/
|
|
86
|
+
abs(): TimeSpan;
|
|
87
|
+
/**
|
|
88
|
+
* Multiplies the TimeSpan by a factor
|
|
89
|
+
*/
|
|
90
|
+
multiply(factor: number): TimeSpan;
|
|
91
|
+
/**
|
|
92
|
+
* Divides the TimeSpan by a divisor
|
|
93
|
+
*/
|
|
94
|
+
divide(divisor: number): TimeSpan;
|
|
95
|
+
/**
|
|
96
|
+
* Returns the duration (absolute value) of this TimeSpan
|
|
97
|
+
*/
|
|
98
|
+
duration(): TimeSpan;
|
|
99
|
+
/**
|
|
100
|
+
* Converts TimeSpan to a plain object
|
|
101
|
+
*/
|
|
102
|
+
toObject(): TimeLike;
|
|
103
|
+
/**
|
|
104
|
+
* Converts this TimeSpan to a JavaScript Date
|
|
105
|
+
* @param baseDate - Optional base date to add the TimeSpan to. Defaults to current time.
|
|
106
|
+
* @returns A Date representing baseDate + this TimeSpan
|
|
107
|
+
*/
|
|
108
|
+
toDate(baseDate?: Date): Date;
|
|
109
|
+
/**
|
|
110
|
+
* Converts this TimeSpan to a Luxon DateTime
|
|
111
|
+
* @param baseDateTime - Optional base DateTime to add the TimeSpan to. Defaults to current time.
|
|
112
|
+
* @returns A DateTime representing baseDateTime + this TimeSpan
|
|
113
|
+
*/
|
|
114
|
+
toDateTime(baseDateTime?: DateTime): DateTime;
|
|
115
|
+
valueOf(): number;
|
|
116
|
+
toJSON(): string;
|
|
117
|
+
toString(): string;
|
|
118
|
+
static fromDays(value: number): TimeSpan;
|
|
119
|
+
static fromHours(value: number): TimeSpan;
|
|
120
|
+
static fromMilliseconds(value: number): TimeSpan;
|
|
121
|
+
static fromMinutes(value: number): TimeSpan;
|
|
122
|
+
static fromSeconds(value: number): TimeSpan;
|
|
123
|
+
/**
|
|
124
|
+
* Creates a TimeSpan from a JavaScript Date object
|
|
125
|
+
* Represents the time elapsed from the given date until now
|
|
126
|
+
* @param date - The date to calculate elapsed time from
|
|
127
|
+
* @returns A TimeSpan representing the elapsed time
|
|
128
|
+
*/
|
|
129
|
+
static fromDate(date: Date): TimeSpan;
|
|
130
|
+
/**
|
|
131
|
+
* Creates a TimeSpan from a Luxon DateTime object
|
|
132
|
+
* Represents the time elapsed from the given DateTime until now
|
|
133
|
+
* @param dateTime - The DateTime to calculate elapsed time from
|
|
134
|
+
* @returns A TimeSpan representing the elapsed time
|
|
135
|
+
*/
|
|
136
|
+
static fromDateTime(dateTime: DateTime): TimeSpan;
|
|
137
|
+
/**
|
|
138
|
+
* Creates a TimeSpan representing the difference between two dates
|
|
139
|
+
* @param date1 - The first date
|
|
140
|
+
* @param date2 - The second date
|
|
141
|
+
* @returns A TimeSpan representing date1 - date2
|
|
142
|
+
*/
|
|
143
|
+
static between(date1: Date, date2: Date): TimeSpan;
|
|
144
|
+
static between(date1: DateTime, date2: DateTime): TimeSpan;
|
|
145
|
+
static fromTime(hours: number, minutes: number, seconds: number): TimeSpan;
|
|
146
|
+
static fromTime(days: number, hours: number, minutes: number, seconds: number, milliseconds: number): TimeSpan;
|
|
147
|
+
private static fromTimeStartingFromHours;
|
|
148
|
+
private static fromTimeStartingFromDays;
|
|
149
|
+
static parse(span: TimeSpanLike | Date): TimeSpan | null;
|
|
150
|
+
private static interval;
|
|
151
|
+
private static round;
|
|
152
|
+
private static timeToMilliseconds;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=timespan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timespan.d.ts","sourceRoot":"","sources":["../../src/timespan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeSpan = void 0;
|
|
4
|
+
const luxon_1 = require("luxon");
|
|
5
|
+
const args_js_1 = require("./args.js");
|
|
6
|
+
class TimeSpan {
|
|
7
|
+
static get TIMEZONE_OFFSET() {
|
|
8
|
+
if (!this._TIMEZONE_OFFSET) {
|
|
9
|
+
this._TIMEZONE_OFFSET = TimeSpan.fromMinutes(new Date().getTimezoneOffset() * -1);
|
|
10
|
+
}
|
|
11
|
+
return TimeSpan._TIMEZONE_OFFSET;
|
|
12
|
+
}
|
|
13
|
+
constructor(millis) {
|
|
14
|
+
this._millis = millis;
|
|
15
|
+
}
|
|
16
|
+
get milliseconds() {
|
|
17
|
+
return TimeSpan.round(this._millis % 1000);
|
|
18
|
+
}
|
|
19
|
+
get seconds() {
|
|
20
|
+
return TimeSpan.round((this._millis / TimeSpan.MILLIS_PER_SECOND) % 60);
|
|
21
|
+
}
|
|
22
|
+
get minutes() {
|
|
23
|
+
return TimeSpan.round((this._millis / TimeSpan.MILLIS_PER_MINUTE) % 60);
|
|
24
|
+
}
|
|
25
|
+
get hours() {
|
|
26
|
+
return TimeSpan.round((this._millis / TimeSpan.MILLIS_PER_HOUR) % 24);
|
|
27
|
+
}
|
|
28
|
+
get days() {
|
|
29
|
+
return TimeSpan.round(this._millis / TimeSpan.MILLIS_PER_DAY);
|
|
30
|
+
}
|
|
31
|
+
get totalDays() {
|
|
32
|
+
return this._millis / TimeSpan.MILLIS_PER_DAY;
|
|
33
|
+
}
|
|
34
|
+
get totalHours() {
|
|
35
|
+
return this._millis / TimeSpan.MILLIS_PER_HOUR;
|
|
36
|
+
}
|
|
37
|
+
get totalMinutes() {
|
|
38
|
+
return this._millis / TimeSpan.MILLIS_PER_MINUTE;
|
|
39
|
+
}
|
|
40
|
+
get totalSeconds() {
|
|
41
|
+
return this._millis / TimeSpan.MILLIS_PER_SECOND;
|
|
42
|
+
}
|
|
43
|
+
get totalMilliseconds() {
|
|
44
|
+
return this._millis;
|
|
45
|
+
}
|
|
46
|
+
add(ts) {
|
|
47
|
+
const result = this._millis + ts.totalMilliseconds;
|
|
48
|
+
return new TimeSpan(result);
|
|
49
|
+
}
|
|
50
|
+
subtract(ts) {
|
|
51
|
+
const result = this._millis - ts.totalMilliseconds;
|
|
52
|
+
return new TimeSpan(result);
|
|
53
|
+
}
|
|
54
|
+
addDays(value) {
|
|
55
|
+
const result = this._millis + value * TimeSpan.MILLIS_PER_DAY;
|
|
56
|
+
return new TimeSpan(result);
|
|
57
|
+
}
|
|
58
|
+
subtractDays(value) {
|
|
59
|
+
const result = this._millis - value * TimeSpan.MILLIS_PER_DAY;
|
|
60
|
+
return new TimeSpan(result);
|
|
61
|
+
}
|
|
62
|
+
addHours(value) {
|
|
63
|
+
const result = this._millis + value * TimeSpan.MILLIS_PER_HOUR;
|
|
64
|
+
return new TimeSpan(result);
|
|
65
|
+
}
|
|
66
|
+
subtractHours(value) {
|
|
67
|
+
const result = this._millis - value * TimeSpan.MILLIS_PER_HOUR;
|
|
68
|
+
return new TimeSpan(result);
|
|
69
|
+
}
|
|
70
|
+
addMinutes(value) {
|
|
71
|
+
const result = this._millis + value * TimeSpan.MILLIS_PER_MINUTE;
|
|
72
|
+
return new TimeSpan(result);
|
|
73
|
+
}
|
|
74
|
+
subtractMinutes(value) {
|
|
75
|
+
const result = this._millis - value * TimeSpan.MILLIS_PER_MINUTE;
|
|
76
|
+
return new TimeSpan(result);
|
|
77
|
+
}
|
|
78
|
+
addSeconds(value) {
|
|
79
|
+
const result = this._millis + value * TimeSpan.MILLIS_PER_SECOND;
|
|
80
|
+
return new TimeSpan(result);
|
|
81
|
+
}
|
|
82
|
+
addMilliseconds(value) {
|
|
83
|
+
const result = this._millis + value;
|
|
84
|
+
return new TimeSpan(result);
|
|
85
|
+
}
|
|
86
|
+
subtractSeconds(value) {
|
|
87
|
+
const result = this._millis - value * TimeSpan.MILLIS_PER_SECOND;
|
|
88
|
+
return new TimeSpan(result);
|
|
89
|
+
}
|
|
90
|
+
subtractMilliseconds(value) {
|
|
91
|
+
const result = this._millis - value;
|
|
92
|
+
return new TimeSpan(result);
|
|
93
|
+
}
|
|
94
|
+
negate() {
|
|
95
|
+
return new TimeSpan(-this._millis);
|
|
96
|
+
}
|
|
97
|
+
equals(value) {
|
|
98
|
+
if (value instanceof TimeSpan) {
|
|
99
|
+
return this._millis === value._millis;
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Compares this TimeSpan with another TimeSpan
|
|
105
|
+
* @returns -1 if this < other, 0 if equal, 1 if this > other
|
|
106
|
+
*/
|
|
107
|
+
compareTo(other) {
|
|
108
|
+
if (this._millis < other._millis)
|
|
109
|
+
return -1;
|
|
110
|
+
if (this._millis > other._millis)
|
|
111
|
+
return 1;
|
|
112
|
+
return 0;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Checks if this TimeSpan is greater than another
|
|
116
|
+
*/
|
|
117
|
+
greaterThan(other) {
|
|
118
|
+
return this._millis > other._millis;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Checks if this TimeSpan is greater than or equal to another
|
|
122
|
+
*/
|
|
123
|
+
greaterThanOrEqual(other) {
|
|
124
|
+
return this._millis >= other._millis;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Checks if this TimeSpan is less than another
|
|
128
|
+
*/
|
|
129
|
+
lessThan(other) {
|
|
130
|
+
return this._millis < other._millis;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Checks if this TimeSpan is less than or equal to another
|
|
134
|
+
*/
|
|
135
|
+
lessThanOrEqual(other) {
|
|
136
|
+
return this._millis <= other._millis;
|
|
137
|
+
}
|
|
138
|
+
isTimeInRange(start, end) {
|
|
139
|
+
let startTime;
|
|
140
|
+
let endTime;
|
|
141
|
+
if (start instanceof Date) {
|
|
142
|
+
// Extract time-of-day in milliseconds since midnight
|
|
143
|
+
const startHours = start.getHours();
|
|
144
|
+
const startMinutes = start.getMinutes();
|
|
145
|
+
const startSeconds = start.getSeconds();
|
|
146
|
+
const startMs = start.getMilliseconds();
|
|
147
|
+
startTime = startHours * TimeSpan.MILLIS_PER_HOUR +
|
|
148
|
+
startMinutes * TimeSpan.MILLIS_PER_MINUTE +
|
|
149
|
+
startSeconds * TimeSpan.MILLIS_PER_SECOND +
|
|
150
|
+
startMs;
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// Luxon DateTime
|
|
154
|
+
startTime = start.hour * TimeSpan.MILLIS_PER_HOUR +
|
|
155
|
+
start.minute * TimeSpan.MILLIS_PER_MINUTE +
|
|
156
|
+
start.second * TimeSpan.MILLIS_PER_SECOND +
|
|
157
|
+
start.millisecond;
|
|
158
|
+
}
|
|
159
|
+
if (end instanceof Date) {
|
|
160
|
+
const endHours = end.getHours();
|
|
161
|
+
const endMinutes = end.getMinutes();
|
|
162
|
+
const endSeconds = end.getSeconds();
|
|
163
|
+
const endMs = end.getMilliseconds();
|
|
164
|
+
endTime = endHours * TimeSpan.MILLIS_PER_HOUR +
|
|
165
|
+
endMinutes * TimeSpan.MILLIS_PER_MINUTE +
|
|
166
|
+
endSeconds * TimeSpan.MILLIS_PER_SECOND +
|
|
167
|
+
endMs;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
endTime = end.hour * TimeSpan.MILLIS_PER_HOUR +
|
|
171
|
+
end.minute * TimeSpan.MILLIS_PER_MINUTE +
|
|
172
|
+
end.second * TimeSpan.MILLIS_PER_SECOND +
|
|
173
|
+
end.millisecond;
|
|
174
|
+
}
|
|
175
|
+
// Normalize this TimeSpan to a time-of-day (remove days component)
|
|
176
|
+
const thisTimeOfDay = this._millis % TimeSpan.MILLIS_PER_DAY;
|
|
177
|
+
const normalizedTime = thisTimeOfDay >= 0 ? thisTimeOfDay : thisTimeOfDay + TimeSpan.MILLIS_PER_DAY;
|
|
178
|
+
// Check if the time falls within the range
|
|
179
|
+
if (startTime <= endTime) {
|
|
180
|
+
// Normal case: range doesn't cross midnight
|
|
181
|
+
return normalizedTime >= startTime && normalizedTime <= endTime;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
// Range crosses midnight (e.g., 22:00 to 02:00)
|
|
185
|
+
return normalizedTime >= startTime || normalizedTime <= endTime;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Checks if this TimeSpan (as a time-of-day) falls between two times
|
|
190
|
+
* @param startTime - Start time as TimeSpan
|
|
191
|
+
* @param endTime - End time as TimeSpan
|
|
192
|
+
* @returns true if this time is within the range
|
|
193
|
+
*/
|
|
194
|
+
isBetween(startTime, endTime) {
|
|
195
|
+
// Normalize all timespans to time-of-day (0-24 hours)
|
|
196
|
+
const thisTimeOfDay = this._millis % TimeSpan.MILLIS_PER_DAY;
|
|
197
|
+
const normalizedThis = thisTimeOfDay >= 0 ? thisTimeOfDay : thisTimeOfDay + TimeSpan.MILLIS_PER_DAY;
|
|
198
|
+
const startTimeOfDay = startTime._millis % TimeSpan.MILLIS_PER_DAY;
|
|
199
|
+
const normalizedStart = startTimeOfDay >= 0 ? startTimeOfDay : startTimeOfDay + TimeSpan.MILLIS_PER_DAY;
|
|
200
|
+
const endTimeOfDay = endTime._millis % TimeSpan.MILLIS_PER_DAY;
|
|
201
|
+
const normalizedEnd = endTimeOfDay >= 0 ? endTimeOfDay : endTimeOfDay + TimeSpan.MILLIS_PER_DAY;
|
|
202
|
+
if (normalizedStart <= normalizedEnd) {
|
|
203
|
+
// Normal case: range doesn't cross midnight
|
|
204
|
+
return normalizedThis >= normalizedStart && normalizedThis <= normalizedEnd;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
// Range crosses midnight (e.g., 22:00 to 02:00)
|
|
208
|
+
return normalizedThis >= normalizedStart || normalizedThis <= normalizedEnd;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Returns the absolute value of this TimeSpan
|
|
213
|
+
*/
|
|
214
|
+
abs() {
|
|
215
|
+
return this._millis < 0 ? new TimeSpan(-this._millis) : this;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Multiplies the TimeSpan by a factor
|
|
219
|
+
*/
|
|
220
|
+
multiply(factor) {
|
|
221
|
+
factor = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(factor, 'factor');
|
|
222
|
+
return new TimeSpan(this._millis * factor);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Divides the TimeSpan by a divisor
|
|
226
|
+
*/
|
|
227
|
+
divide(divisor) {
|
|
228
|
+
divisor = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(divisor, 'divisor');
|
|
229
|
+
if (divisor === 0) {
|
|
230
|
+
throw new Error('Cannot divide TimeSpan by zero');
|
|
231
|
+
}
|
|
232
|
+
return new TimeSpan(this._millis / divisor);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Returns the duration (absolute value) of this TimeSpan
|
|
236
|
+
*/
|
|
237
|
+
duration() {
|
|
238
|
+
return this.abs();
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Converts TimeSpan to a plain object
|
|
242
|
+
*/
|
|
243
|
+
toObject() {
|
|
244
|
+
return {
|
|
245
|
+
days: this.days,
|
|
246
|
+
hours: this.hours,
|
|
247
|
+
minutes: this.minutes,
|
|
248
|
+
seconds: this.seconds,
|
|
249
|
+
milliseconds: this.milliseconds,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Converts this TimeSpan to a JavaScript Date
|
|
254
|
+
* @param baseDate - Optional base date to add the TimeSpan to. Defaults to current time.
|
|
255
|
+
* @returns A Date representing baseDate + this TimeSpan
|
|
256
|
+
*/
|
|
257
|
+
toDate(baseDate) {
|
|
258
|
+
const base = baseDate ? baseDate.getTime() : Date.now();
|
|
259
|
+
return new Date(base + this._millis);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Converts this TimeSpan to a Luxon DateTime
|
|
263
|
+
* @param baseDateTime - Optional base DateTime to add the TimeSpan to. Defaults to current time.
|
|
264
|
+
* @returns A DateTime representing baseDateTime + this TimeSpan
|
|
265
|
+
*/
|
|
266
|
+
toDateTime(baseDateTime) {
|
|
267
|
+
const base = baseDateTime || luxon_1.DateTime.now();
|
|
268
|
+
return base.plus({ milliseconds: this._millis });
|
|
269
|
+
}
|
|
270
|
+
valueOf() {
|
|
271
|
+
return this._millis;
|
|
272
|
+
}
|
|
273
|
+
toJSON() {
|
|
274
|
+
return this.toString();
|
|
275
|
+
}
|
|
276
|
+
toString() {
|
|
277
|
+
const absMillis = Math.abs(this._millis);
|
|
278
|
+
const negative = this._millis < 0;
|
|
279
|
+
const d = Math.floor(absMillis / TimeSpan.MILLIS_PER_DAY);
|
|
280
|
+
const h = Math.floor((absMillis % TimeSpan.MILLIS_PER_DAY) / TimeSpan.MILLIS_PER_HOUR);
|
|
281
|
+
const m = Math.floor((absMillis % TimeSpan.MILLIS_PER_HOUR) / TimeSpan.MILLIS_PER_MINUTE);
|
|
282
|
+
const s = Math.floor((absMillis % TimeSpan.MILLIS_PER_MINUTE) / TimeSpan.MILLIS_PER_SECOND);
|
|
283
|
+
const ms = Math.floor(absMillis % TimeSpan.MILLIS_PER_SECOND);
|
|
284
|
+
let text = '';
|
|
285
|
+
// Include days if present
|
|
286
|
+
if (d > 0) {
|
|
287
|
+
text = `${d}.${to2Digits(h)}:${to2Digits(m)}:${to2Digits(s)}`;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
text = `${to2Digits(h)}:${to2Digits(m)}:${to2Digits(s)}`;
|
|
291
|
+
}
|
|
292
|
+
// Include milliseconds if present
|
|
293
|
+
if (ms > 0) {
|
|
294
|
+
text += `.${String(ms).padStart(3, '0')}`;
|
|
295
|
+
}
|
|
296
|
+
if (negative) {
|
|
297
|
+
text = '-' + text;
|
|
298
|
+
}
|
|
299
|
+
return text;
|
|
300
|
+
}
|
|
301
|
+
static fromDays(value) {
|
|
302
|
+
return TimeSpan.interval(value, TimeSpan.MILLIS_PER_DAY);
|
|
303
|
+
}
|
|
304
|
+
static fromHours(value) {
|
|
305
|
+
return TimeSpan.interval(value, TimeSpan.MILLIS_PER_HOUR);
|
|
306
|
+
}
|
|
307
|
+
static fromMilliseconds(value) {
|
|
308
|
+
return TimeSpan.interval(value, 1);
|
|
309
|
+
}
|
|
310
|
+
static fromMinutes(value) {
|
|
311
|
+
return TimeSpan.interval(value, TimeSpan.MILLIS_PER_MINUTE);
|
|
312
|
+
}
|
|
313
|
+
static fromSeconds(value) {
|
|
314
|
+
return TimeSpan.interval(value, TimeSpan.MILLIS_PER_SECOND);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Creates a TimeSpan from a JavaScript Date object
|
|
318
|
+
* Represents the time elapsed from the given date until now
|
|
319
|
+
* @param date - The date to calculate elapsed time from
|
|
320
|
+
* @returns A TimeSpan representing the elapsed time
|
|
321
|
+
*/
|
|
322
|
+
static fromDate(date) {
|
|
323
|
+
const elapsed = Date.now() - date.getTime();
|
|
324
|
+
return new TimeSpan(elapsed);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Creates a TimeSpan from a Luxon DateTime object
|
|
328
|
+
* Represents the time elapsed from the given DateTime until now
|
|
329
|
+
* @param dateTime - The DateTime to calculate elapsed time from
|
|
330
|
+
* @returns A TimeSpan representing the elapsed time
|
|
331
|
+
*/
|
|
332
|
+
static fromDateTime(dateTime) {
|
|
333
|
+
const elapsed = luxon_1.DateTime.now().toMillis() - dateTime.toMillis();
|
|
334
|
+
return new TimeSpan(elapsed);
|
|
335
|
+
}
|
|
336
|
+
static between(date1, date2) {
|
|
337
|
+
let millis1;
|
|
338
|
+
let millis2;
|
|
339
|
+
if (date1 instanceof Date) {
|
|
340
|
+
millis1 = date1.getTime();
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
millis1 = date1.toMillis();
|
|
344
|
+
}
|
|
345
|
+
if (date2 instanceof Date) {
|
|
346
|
+
millis2 = date2.getTime();
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
millis2 = date2.toMillis();
|
|
350
|
+
}
|
|
351
|
+
return new TimeSpan(millis1 - millis2);
|
|
352
|
+
}
|
|
353
|
+
static fromTime(daysOrHours, hoursOrMinutes, minutesOrSeconds, seconds, milliseconds) {
|
|
354
|
+
if (milliseconds != undefined) {
|
|
355
|
+
return this.fromTimeStartingFromDays(daysOrHours, hoursOrMinutes, minutesOrSeconds, seconds, milliseconds);
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
return this.fromTimeStartingFromHours(daysOrHours, hoursOrMinutes, minutesOrSeconds, 0);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
static fromTimeStartingFromHours(hours, minutes, seconds, milliseconds) {
|
|
362
|
+
hours = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(hours, 'hours');
|
|
363
|
+
minutes = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(minutes, 'minutes');
|
|
364
|
+
seconds = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(seconds, 'seconds');
|
|
365
|
+
milliseconds = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(milliseconds, 'milliseconds');
|
|
366
|
+
const millis = TimeSpan.timeToMilliseconds(hours, minutes, seconds) + milliseconds;
|
|
367
|
+
return new TimeSpan(millis);
|
|
368
|
+
}
|
|
369
|
+
static fromTimeStartingFromDays(days, hours, minutes, seconds, milliseconds) {
|
|
370
|
+
days = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(days, 'days');
|
|
371
|
+
hours = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(hours, 'hours');
|
|
372
|
+
minutes = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(minutes, 'minutes');
|
|
373
|
+
seconds = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(seconds, 'seconds');
|
|
374
|
+
milliseconds = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(milliseconds, 'milliseconds');
|
|
375
|
+
const totalMilliSeconds = days * TimeSpan.MILLIS_PER_DAY +
|
|
376
|
+
hours * TimeSpan.MILLIS_PER_HOUR +
|
|
377
|
+
minutes * TimeSpan.MILLIS_PER_MINUTE +
|
|
378
|
+
seconds * TimeSpan.MILLIS_PER_SECOND +
|
|
379
|
+
milliseconds;
|
|
380
|
+
if (totalMilliSeconds > TimeSpan.MAX_VALUE.totalMilliseconds ||
|
|
381
|
+
totalMilliSeconds < TimeSpan.MIN_VALUE.totalMilliseconds) {
|
|
382
|
+
throw new Error('TimeSpanTooLong');
|
|
383
|
+
}
|
|
384
|
+
return new TimeSpan(totalMilliSeconds);
|
|
385
|
+
}
|
|
386
|
+
static parse(span) {
|
|
387
|
+
if (span instanceof TimeSpan) {
|
|
388
|
+
return span;
|
|
389
|
+
}
|
|
390
|
+
if (span instanceof Date) {
|
|
391
|
+
// Calculate time elapsed since the date
|
|
392
|
+
span = Date.now() - span.getTime();
|
|
393
|
+
}
|
|
394
|
+
if (typeof span === 'number') {
|
|
395
|
+
return new TimeSpan(span);
|
|
396
|
+
}
|
|
397
|
+
if (!span) {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
if (typeof span === 'object') {
|
|
401
|
+
const { days, hours, minutes, seconds, milliseconds } = span;
|
|
402
|
+
return TimeSpan.fromTime(days || 0, hours || 0, minutes || 0, seconds || 0, milliseconds || 0);
|
|
403
|
+
}
|
|
404
|
+
// Parse string format: "[d.]hh:mm:ss[.fff]"
|
|
405
|
+
// Examples: "12:30:45", "1.12:30:45", "12:30:45.123"
|
|
406
|
+
const tokens = span.split(':');
|
|
407
|
+
if (tokens.length < 3) {
|
|
408
|
+
throw new Error('Invalid TimeSpan format. Expected format: "[d.]hh:mm:ss[.fff]"');
|
|
409
|
+
}
|
|
410
|
+
const secondsParts = tokens[2].split('.');
|
|
411
|
+
let milliseconds = 0;
|
|
412
|
+
if (secondsParts.length === 2) {
|
|
413
|
+
// Pad or truncate to 3 digits
|
|
414
|
+
const msString = secondsParts[1].padEnd(3, '0').slice(0, 3);
|
|
415
|
+
milliseconds = +msString;
|
|
416
|
+
}
|
|
417
|
+
const daysParts = tokens[0].split('.');
|
|
418
|
+
if (daysParts.length === 2) {
|
|
419
|
+
// Format: "d.hh:mm:ss[.fff]"
|
|
420
|
+
return TimeSpan.fromTimeStartingFromDays(+daysParts[0], +daysParts[1], +tokens[1], +secondsParts[0], milliseconds);
|
|
421
|
+
}
|
|
422
|
+
// Format: "hh:mm:ss[.fff]"
|
|
423
|
+
return TimeSpan.fromTimeStartingFromHours(+tokens[0], +tokens[1], +secondsParts[0], milliseconds);
|
|
424
|
+
}
|
|
425
|
+
static interval(value, scale) {
|
|
426
|
+
value = (0, args_js_1._is_number)((0, args_js_1._non_NaN)())(value, 'value');
|
|
427
|
+
const tmp = value * scale;
|
|
428
|
+
const millis = TimeSpan.round(tmp + (value >= 0 ? 0.5 : -0.5));
|
|
429
|
+
if (millis > TimeSpan.MAX_VALUE.totalMilliseconds ||
|
|
430
|
+
millis < TimeSpan.MIN_VALUE.totalMilliseconds) {
|
|
431
|
+
throw new Error('TimeSpanTooLong');
|
|
432
|
+
}
|
|
433
|
+
return new TimeSpan(millis);
|
|
434
|
+
}
|
|
435
|
+
static round(n) {
|
|
436
|
+
if (n < 0) {
|
|
437
|
+
return Math.ceil(n);
|
|
438
|
+
}
|
|
439
|
+
else if (n > 0) {
|
|
440
|
+
return Math.floor(n);
|
|
441
|
+
}
|
|
442
|
+
return 0;
|
|
443
|
+
}
|
|
444
|
+
static timeToMilliseconds(hour, minute, second) {
|
|
445
|
+
const totalSeconds = hour * 3600 + minute * 60 + second;
|
|
446
|
+
if (totalSeconds > TimeSpan.MAX_VALUE.totalSeconds ||
|
|
447
|
+
totalSeconds < TimeSpan.MIN_VALUE.totalSeconds) {
|
|
448
|
+
throw new Error('TimeSpanTooLong');
|
|
449
|
+
}
|
|
450
|
+
return totalSeconds * TimeSpan.MILLIS_PER_SECOND;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
exports.TimeSpan = TimeSpan;
|
|
454
|
+
TimeSpan.MILLIS_PER_SECOND = 1000;
|
|
455
|
+
TimeSpan.MILLIS_PER_MINUTE = TimeSpan.MILLIS_PER_SECOND * 60;
|
|
456
|
+
TimeSpan.MILLIS_PER_HOUR = TimeSpan.MILLIS_PER_MINUTE * 60;
|
|
457
|
+
TimeSpan.MILLIS_PER_DAY = TimeSpan.MILLIS_PER_HOUR * 24;
|
|
458
|
+
TimeSpan.ZERO = new TimeSpan(0);
|
|
459
|
+
TimeSpan.MAX_VALUE = new TimeSpan(Number.MAX_SAFE_INTEGER);
|
|
460
|
+
TimeSpan.MIN_VALUE = new TimeSpan(Number.MIN_SAFE_INTEGER);
|
|
461
|
+
function to2Digits(n) {
|
|
462
|
+
return String(n).padStart(2, '0');
|
|
463
|
+
}
|
|
464
|
+
//# sourceMappingURL=timespan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timespan.js","sourceRoot":"","sources":["../../src/timespan.ts"],"names":[],"mappings":"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"}
|