init Timer

This commit is contained in:
Tchi
2021-07-04 12:33:35 +02:00
parent 5fbf29f3c5
commit 581ac96aca
5 changed files with 88 additions and 2 deletions
+28
View File
@@ -0,0 +1,28 @@
var htmlTimer = document.getElementById("timer");
var timer = setInterval(timerLoop, 1000);
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
let time = parseInt(urlParams.get('time'))
function timerLoop() {
htmlTimer.innerHTML = convertSecMin(time);
time--;
if(time < 0) {
clearInterval(timer)
htmlTimer.style.color = "red";
}
}
function convertSecMin(value) {
let seconds = Math.floor(value % 60);
let minuts = Math.floor(value / 60);
return `${convertDigits(minuts)}:${convertDigits(seconds)}`
}
function convertDigits(number) {
return number.toLocaleString('en-US', {
minimumIntegerDigits : 2,
useGrouping : false});
}
+37
View File
@@ -0,0 +1,37 @@
class Timer {
/**
* Make a timer
* @param {int} time in seconds
* @throws TypeError if time is not a positive Integer
*/
constructor(time) {
if (!isValid(time)) throw new TypeError(`${time} n'est pas un entier valide`);
this.time = time;
}
/**
* Predicate that show if the value of the timer is correctly set
* @param {int} valueTest
* @return True if the predicate is verified
* False else
*/
isValid(valueTest) {
return Number.isInteger(valueTest) && valueTest > 0
}
/**
* @return the current time
*/
getTime() {
return this.time
}
/**
* Make start the timer
*/
startTimer() {
setTimeout(this.time--, 1000)
}
}