-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathhelpers.js
49 lines (43 loc) · 1.33 KB
/
helpers.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
let ordinalOf = (i) => {
let j = i % 10,
k = i % 100;
if (j == 1 && k != 11) return i + "st";
if (j == 2 && k != 12) return i + "nd";
if (j == 3 && k != 13) return i + "rd";
return i + "th";
}
const secondsToString = (seconds) => {
let years = Math.floor(seconds / 31536000);
let days = Math.floor((seconds % 31536000) / 86400);
let hours = Math.floor(((seconds % 31536000) % 86400) / 3600);
let minutes = Math.floor((((seconds % 31536000) % 86400) % 3600) / 60);
let remainingSeconds = (((seconds % 31536000) % 86400) % 3600) % 60;
let string = ""
if(years) string += `${years} y `
if(days) string += `${days} d `
if(hours) string += `${hours} h `
if(minutes) string += `${minutes} m `
if(remainingSeconds) string += `${remainingSeconds} s`
return string;
}
const countStringOccurrences = (string, subString, allowOverlapping) => {
string += "";
subString += "";
if (subString.length <= 0) return (string.length + 1);
var n = 0,
pos = 0,
step = allowOverlapping ? 1 : subString.length;
while (true) {
pos = string.indexOf(subString, pos);
if (pos >= 0) {
++n;
pos += step;
} else break;
}
return n;
}
module.exports = {
ordinalOf,
secondsToString,
countStringOccurrences
}