diff --git a/SpecRunner.html b/SpecRunner.html index 0265dc18..7db534c3 100644 --- a/SpecRunner.html +++ b/SpecRunner.html @@ -4,21 +4,24 @@ Jasmine Spec Runner v2.8.0 - + - - - + + - - - + + diff --git a/index.html b/index.html index 32e914c7..def40a9d 100644 --- a/index.html +++ b/index.html @@ -1,50 +1,49 @@ - - - - - JS Chronometer - - - - -
-

Splits

-
    -
-
- -
- -
-
- 00:00 - -
- 00 + + + + + JS Chronometer + + + +
+

Splits

+
    +
    + +
    + +
    +
    + 00:00 + +
    + 00 +
    + + +
    +
    - +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    + + + + - - - - - - - - - - - - \ No newline at end of file + + + + diff --git a/src/chronometer-centiseconds.js b/src/chronometer-centiseconds.js index 8337b5b6..2d46546b 100644 --- a/src/chronometer-centiseconds.js +++ b/src/chronometer-centiseconds.js @@ -1,37 +1,48 @@ class Chronometer { constructor() { - // ... your code goes here + this.currentTime = 0; + this.intervalId = null; } start(printTimeCallback) { - // ... your code goes here + this.intervalId = setInterval(() => { + this.currentTime += 1; + + if (printTimeCallback) { + printTimeCallback(); + } + }, 10); } getMinutes() { - // ... your code goes here + return Math.floor(this.currentTime / 6000); } getSeconds() { - // ... your code goes here + return Math.floor((this.currentTime % 6000) / 100); } getCentiseconds() { - // ... your code goes here + return this.currentTime % 100; } computeTwoDigitNumber(value) { - // ... your code goes here + return value.toString().padStart(2, "0"); } stop() { - // ... your code goes here + clearInterval(this.intervalId); } reset() { - // ... your code goes here + this.currentTime = 0; } split() { - // ... your code goes here + const minutes = this.computeTwoDigitNumber(this.getMinutes()); + const seconds = this.computeTwoDigitNumber(this.getSeconds()); + const centiseconds = this.computeTwoDigitNumber(this.getCentiseconds()); + + return `${minutes}:${seconds}.${centiseconds}`; } } diff --git a/src/chronometer.js b/src/chronometer.js index 83c75bd2..468e338e 100644 --- a/src/chronometer.js +++ b/src/chronometer.js @@ -1,33 +1,43 @@ class Chronometer { constructor() { - // ... your code goes here + this.currentTime = 0; + this.intervalId = null; } start(printTimeCallback) { - // ... your code goes here + this.intervalId = setInterval(() => { + this.currentTime += 1; + + if (printTimeCallback) { + printTimeCallback(); + } + }, 1000); } getMinutes() { - // ... your code goes here + return Math.floor(this.currentTime / 60); } getSeconds() { - // ... your code goes here + return this.currentTime % 60; } computeTwoDigitNumber(value) { - // ... your code goes here + return value.toString().padStart(2, "0"); } stop() { - // ... your code goes here + clearInterval(this.intervalId); } reset() { - // ... your code goes here + this.currentTime = 0; } split() { - // ... your code goes here + const minutes = this.computeTwoDigitNumber(this.getMinutes()); + const seconds = this.computeTwoDigitNumber(this.getSeconds()); + + return `${minutes}:${seconds}`; } }