@develia/commons 0.2.12 → 0.2.13
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/package.json +1 -1
- package/src/timespan.js +56 -18
- package/src/timespan.js.map +1 -1
- package/src/timespan.ts +70 -19
package/package.json
CHANGED
package/src/timespan.js
CHANGED
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
class TimeSpan {
|
|
2
2
|
constructor(milliseconds) {
|
|
3
|
-
this.
|
|
4
|
-
}
|
|
5
|
-
// Obtener el intervalo de tiempo en milisegundos
|
|
6
|
-
milliseconds() {
|
|
7
|
-
return this._milliseconds;
|
|
3
|
+
this.milliseconds = milliseconds;
|
|
8
4
|
}
|
|
9
5
|
// Obtener el intervalo de tiempo en segundos
|
|
10
6
|
seconds() {
|
|
11
|
-
return this.
|
|
7
|
+
return this.milliseconds / 1000;
|
|
12
8
|
}
|
|
13
9
|
// Obtener el intervalo de tiempo en minutos
|
|
14
10
|
minutes() {
|
|
15
|
-
return this.
|
|
11
|
+
return this.milliseconds / (1000 * 60);
|
|
16
12
|
}
|
|
17
13
|
// Obtener el intervalo de tiempo en horas
|
|
18
14
|
hours() {
|
|
19
|
-
return this.
|
|
15
|
+
return this.milliseconds / (1000 * 60 * 60);
|
|
20
16
|
}
|
|
21
17
|
// Obtener el intervalo de tiempo en días
|
|
22
18
|
days() {
|
|
23
|
-
return this.
|
|
19
|
+
return this.milliseconds / (1000 * 60 * 60 * 24);
|
|
24
20
|
}
|
|
25
21
|
// Obtener el intervalo de tiempo en semanas
|
|
26
22
|
weeks() {
|
|
27
|
-
return this.
|
|
23
|
+
return this.milliseconds / (1000 * 60 * 60 * 24 * 7);
|
|
28
24
|
}
|
|
29
25
|
// Constructor estático para crear un TimeSpan desde milisegundos
|
|
30
26
|
static fromMilliseconds(milliseconds) {
|
|
@@ -52,7 +48,7 @@ export default class TimeSpan {
|
|
|
52
48
|
}
|
|
53
49
|
// Añadir un intervalo de tiempo
|
|
54
50
|
addMilliseconds(milliseconds) {
|
|
55
|
-
return new TimeSpan(this.
|
|
51
|
+
return new TimeSpan(this.milliseconds + milliseconds);
|
|
56
52
|
}
|
|
57
53
|
addSeconds(seconds) {
|
|
58
54
|
return this.addMilliseconds(seconds * 1000);
|
|
@@ -71,7 +67,7 @@ export default class TimeSpan {
|
|
|
71
67
|
}
|
|
72
68
|
// Restar un intervalo de tiempo
|
|
73
69
|
subtractMilliseconds(milliseconds) {
|
|
74
|
-
return new TimeSpan(this.
|
|
70
|
+
return new TimeSpan(this.milliseconds - milliseconds);
|
|
75
71
|
}
|
|
76
72
|
subtractSeconds(seconds) {
|
|
77
73
|
return this.subtractMilliseconds(seconds * 1000);
|
|
@@ -90,25 +86,29 @@ export default class TimeSpan {
|
|
|
90
86
|
}
|
|
91
87
|
// Añadir otro TimeSpan
|
|
92
88
|
add(other) {
|
|
93
|
-
return new TimeSpan(this.
|
|
89
|
+
return new TimeSpan(this.milliseconds + other.milliseconds);
|
|
94
90
|
}
|
|
95
91
|
// Restar otro TimeSpan
|
|
96
92
|
subtract(other) {
|
|
97
|
-
return new TimeSpan(this.
|
|
93
|
+
return new TimeSpan(this.milliseconds - other.milliseconds);
|
|
98
94
|
}
|
|
99
95
|
// Añadir un intervalo de tiempo a una fecha
|
|
100
96
|
addTo(date) {
|
|
101
|
-
return new Date(date.getTime() + this.
|
|
97
|
+
return new Date(date.getTime() + this.milliseconds);
|
|
102
98
|
}
|
|
103
99
|
// Restar un intervalo de tiempo de una fecha
|
|
104
100
|
subtractFrom(date) {
|
|
105
|
-
return new Date(date.getTime() - this.
|
|
101
|
+
return new Date(date.getTime() - this.milliseconds);
|
|
102
|
+
}
|
|
103
|
+
// Método estático para obtener la diferencia entre dos fechas
|
|
104
|
+
static fromDifference(smaller, bigger) {
|
|
105
|
+
return new TimeSpan(bigger.getTime() - smaller.getTime());
|
|
106
106
|
}
|
|
107
107
|
format(format = 'hh:mm:ss') {
|
|
108
108
|
const formatLower = format.toLowerCase();
|
|
109
109
|
const hasHours = formatLower.includes("h");
|
|
110
110
|
const hasMinutes = formatLower.includes("m");
|
|
111
|
-
let hours = 0, minutes = 0, seconds = Math.floor(this.
|
|
111
|
+
let hours = 0, minutes = 0, seconds = Math.floor(this.milliseconds / 1000);
|
|
112
112
|
if (hasHours) {
|
|
113
113
|
hours = Math.floor(seconds / 3600);
|
|
114
114
|
seconds -= hours * 3600;
|
|
@@ -128,5 +128,43 @@ export default class TimeSpan {
|
|
|
128
128
|
.replace('ss', secondsPadded)
|
|
129
129
|
.replace('s', seconds.toString());
|
|
130
130
|
}
|
|
131
|
+
eq(other) {
|
|
132
|
+
return this.milliseconds === other.milliseconds;
|
|
133
|
+
}
|
|
134
|
+
le(other) {
|
|
135
|
+
return this.milliseconds <= other.milliseconds;
|
|
136
|
+
}
|
|
137
|
+
lt(other) {
|
|
138
|
+
return this.milliseconds < other.milliseconds;
|
|
139
|
+
}
|
|
140
|
+
ge(other) {
|
|
141
|
+
return this.milliseconds >= other.milliseconds;
|
|
142
|
+
}
|
|
143
|
+
gt(other) {
|
|
144
|
+
return this.milliseconds > other.milliseconds;
|
|
145
|
+
}
|
|
146
|
+
multiply(number) {
|
|
147
|
+
return new TimeSpan(this.milliseconds * number);
|
|
148
|
+
}
|
|
149
|
+
divide(number) {
|
|
150
|
+
return new TimeSpan(this.milliseconds / number);
|
|
151
|
+
}
|
|
152
|
+
abs() {
|
|
153
|
+
return new TimeSpan(Math.abs(this.milliseconds));
|
|
154
|
+
}
|
|
155
|
+
isInfinite() {
|
|
156
|
+
return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
157
|
+
}
|
|
158
|
+
// Determinar si es un TimeSpan infinitamente positivo
|
|
159
|
+
isPositiveInfinite() {
|
|
160
|
+
return this.milliseconds === Number.POSITIVE_INFINITY;
|
|
161
|
+
}
|
|
162
|
+
// Determinar si es un TimeSpan infinitamente negativo
|
|
163
|
+
isNegativeInfinite() {
|
|
164
|
+
return this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
165
|
+
}
|
|
131
166
|
}
|
|
167
|
+
TimeSpan.INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
|
|
168
|
+
TimeSpan.NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
|
|
169
|
+
export default TimeSpan;
|
|
132
170
|
//# sourceMappingURL=timespan.js.map
|
package/src/timespan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timespan.js","sourceRoot":"","sources":["timespan.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"timespan.js","sourceRoot":"","sources":["timespan.ts"],"names":[],"mappings":"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"}
|
package/src/timespan.ts
CHANGED
|
@@ -1,38 +1,34 @@
|
|
|
1
1
|
export default class TimeSpan {
|
|
2
|
-
|
|
2
|
+
public milliseconds: number;
|
|
3
3
|
|
|
4
|
-
constructor(milliseconds: number) {
|
|
5
|
-
this.
|
|
4
|
+
private constructor(milliseconds: number) {
|
|
5
|
+
this.milliseconds = milliseconds;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
// Obtener el intervalo de tiempo en milisegundos
|
|
9
|
-
milliseconds(): number {
|
|
10
|
-
return this._milliseconds;
|
|
11
|
-
}
|
|
12
8
|
|
|
13
9
|
// Obtener el intervalo de tiempo en segundos
|
|
14
10
|
seconds(): number {
|
|
15
|
-
return this.
|
|
11
|
+
return this.milliseconds / 1000;
|
|
16
12
|
}
|
|
17
13
|
|
|
18
14
|
// Obtener el intervalo de tiempo en minutos
|
|
19
15
|
minutes(): number {
|
|
20
|
-
return this.
|
|
16
|
+
return this.milliseconds / (1000 * 60);
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
// Obtener el intervalo de tiempo en horas
|
|
24
20
|
hours(): number {
|
|
25
|
-
return this.
|
|
21
|
+
return this.milliseconds / (1000 * 60 * 60);
|
|
26
22
|
}
|
|
27
23
|
|
|
28
24
|
// Obtener el intervalo de tiempo en días
|
|
29
25
|
days(): number {
|
|
30
|
-
return this.
|
|
26
|
+
return this.milliseconds / (1000 * 60 * 60 * 24);
|
|
31
27
|
}
|
|
32
28
|
|
|
33
29
|
// Obtener el intervalo de tiempo en semanas
|
|
34
30
|
weeks(): number {
|
|
35
|
-
return this.
|
|
31
|
+
return this.milliseconds / (1000 * 60 * 60 * 24 * 7);
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
// Constructor estático para crear un TimeSpan desde milisegundos
|
|
@@ -67,7 +63,7 @@ export default class TimeSpan {
|
|
|
67
63
|
|
|
68
64
|
// Añadir un intervalo de tiempo
|
|
69
65
|
addMilliseconds(milliseconds: number): TimeSpan {
|
|
70
|
-
return new TimeSpan(this.
|
|
66
|
+
return new TimeSpan(this.milliseconds + milliseconds);
|
|
71
67
|
}
|
|
72
68
|
|
|
73
69
|
addSeconds(seconds: number): TimeSpan {
|
|
@@ -92,7 +88,7 @@ export default class TimeSpan {
|
|
|
92
88
|
|
|
93
89
|
// Restar un intervalo de tiempo
|
|
94
90
|
subtractMilliseconds(milliseconds: number): TimeSpan {
|
|
95
|
-
return new TimeSpan(this.
|
|
91
|
+
return new TimeSpan(this.milliseconds - milliseconds);
|
|
96
92
|
}
|
|
97
93
|
|
|
98
94
|
subtractSeconds(seconds: number): TimeSpan {
|
|
@@ -117,22 +113,27 @@ export default class TimeSpan {
|
|
|
117
113
|
|
|
118
114
|
// Añadir otro TimeSpan
|
|
119
115
|
add(other: TimeSpan): TimeSpan {
|
|
120
|
-
return new TimeSpan(this.
|
|
116
|
+
return new TimeSpan(this.milliseconds + other.milliseconds);
|
|
121
117
|
}
|
|
122
118
|
|
|
123
119
|
// Restar otro TimeSpan
|
|
124
120
|
subtract(other: TimeSpan): TimeSpan {
|
|
125
|
-
return new TimeSpan(this.
|
|
121
|
+
return new TimeSpan(this.milliseconds - other.milliseconds);
|
|
126
122
|
}
|
|
127
123
|
|
|
128
124
|
// Añadir un intervalo de tiempo a una fecha
|
|
129
125
|
addTo(date: Date): Date {
|
|
130
|
-
return new Date(date.getTime() + this.
|
|
126
|
+
return new Date(date.getTime() + this.milliseconds);
|
|
131
127
|
}
|
|
132
128
|
|
|
133
129
|
// Restar un intervalo de tiempo de una fecha
|
|
134
130
|
subtractFrom(date: Date): Date {
|
|
135
|
-
return new Date(date.getTime() - this.
|
|
131
|
+
return new Date(date.getTime() - this.milliseconds);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Método estático para obtener la diferencia entre dos fechas
|
|
135
|
+
static fromDifference(smaller: Date, bigger: Date): TimeSpan {
|
|
136
|
+
return new TimeSpan(bigger.getTime() - smaller.getTime());
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
format(format: string = 'hh:mm:ss'): string {
|
|
@@ -140,7 +141,7 @@ export default class TimeSpan {
|
|
|
140
141
|
const hasHours = formatLower.includes("h");
|
|
141
142
|
const hasMinutes = formatLower.includes("m");
|
|
142
143
|
|
|
143
|
-
let hours = 0, minutes = 0, seconds = Math.floor(this.
|
|
144
|
+
let hours = 0, minutes = 0, seconds = Math.floor(this.milliseconds / 1000);
|
|
144
145
|
|
|
145
146
|
if (hasHours) {
|
|
146
147
|
hours = Math.floor(seconds / 3600);
|
|
@@ -163,4 +164,54 @@ export default class TimeSpan {
|
|
|
163
164
|
.replace('ss', secondsPadded)
|
|
164
165
|
.replace('s', seconds.toString());
|
|
165
166
|
}
|
|
167
|
+
|
|
168
|
+
eq(other: TimeSpan): boolean {
|
|
169
|
+
return this.milliseconds === other.milliseconds;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
le(other: TimeSpan): boolean {
|
|
173
|
+
return this.milliseconds <= other.milliseconds;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
lt(other: TimeSpan): boolean {
|
|
177
|
+
return this.milliseconds < other.milliseconds;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
ge(other: TimeSpan): boolean {
|
|
181
|
+
return this.milliseconds >= other.milliseconds;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
gt(other: TimeSpan): boolean {
|
|
185
|
+
return this.milliseconds > other.milliseconds;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
multiply(number: number): TimeSpan {
|
|
189
|
+
return new TimeSpan(this.milliseconds * number);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
divide(number: number): TimeSpan {
|
|
193
|
+
return new TimeSpan(this.milliseconds / number);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
abs(): TimeSpan {
|
|
197
|
+
return new TimeSpan(Math.abs(this.milliseconds));
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
static readonly INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
|
|
201
|
+
|
|
202
|
+
static readonly NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
|
|
203
|
+
|
|
204
|
+
isInfinite() {
|
|
205
|
+
return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Determinar si es un TimeSpan infinitamente positivo
|
|
209
|
+
isPositiveInfinite(): boolean {
|
|
210
|
+
return this.milliseconds === Number.POSITIVE_INFINITY;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Determinar si es un TimeSpan infinitamente negativo
|
|
214
|
+
isNegativeInfinite(): boolean {
|
|
215
|
+
return this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
216
|
+
}
|
|
166
217
|
}
|