-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtimeUtil.js
executable file
·94 lines (72 loc) · 1.68 KB
/
timeUtil.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
function addTime(time1, time2) {
if (typeof time1 === "string") {
time1 = parseTime(time1);
}
if (typeof time2 === "string") {
time2 = parseTime(time2);
}
let array = time1.map((item, index) => {
let sum = item + time2[index]
return sum;
});
if (array[2] > 60) {
array[2] -= 60;
array[1]++;
}
if (array[1] > 60) {
array[1] -= 60;
array[0]++;
}
return array;
}
function parseTime(time) {
if (!time) {
return [0, 0];
}
let timeArray = time.match(/\d{1,3}/g);
timeArray = timeArray.map((num) => {
return parseInt(num, 10)
});
if (timeArray.length < 3) {
timeArray.unshift(0);
}
return timeArray;
}
function incrementTime(time) {
const incrementedTime = parseTime(time);
incrementedTime[2] += 1;
if (incrementedTime[2] > 60) {
incrementedTime[2] -= 60;
incrementedTime[1]++;
}
if (incrementedTime[1] > 60) {
incrementedTime[1] -= 60;
incrementedTime[0]++;
}
return incrementedTime;
}
function formatTime(time) {
// time: [1,4,7]
let formattedTime;
if (typeof time === "string") {
formattedTime = [...parseTime(time)];
} else {
formattedTime = [...time];
}
const formattedTimeString = formattedTime.map((entity) => {
let str = String(entity);
if (str.length < 2) {
str = str.split("");
str.unshift("0");
return str.join("");
}
return str
});
return formattedTimeString.join(":");
}
module.exports = {
addTime,
parseTime,
incrementTime,
formatTime
}