-
Notifications
You must be signed in to change notification settings - Fork 1
/
solution.js
25 lines (19 loc) · 701 Bytes
/
solution.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
const getCompleted = (part, total) => {
const [hoursPart, minutesPart, secondsPart] = part.split(':');
const [hoursTotal, minutesTotal, secondsTotal] = total.split(':');
const partSeconds = (+hoursPart * 60 + +minutesPart) * 60 + +secondsPart;
const totalSeconds = (+hoursTotal * 60 + +minutesTotal) * 60 + +secondsTotal;
const calculateGreatestCommonDivisor = (a, b) => {
while (b) {
const t = b;
b = a % b;
a = t;
}
return a;
};
const gcd = calculateGreatestCommonDivisor(partSeconds, totalSeconds);
const numerator = partSeconds / gcd;
const denominator = totalSeconds / gcd;
return `${numerator}/${denominator}`;
};
export { getCompleted };