Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for [old] Broken Clock by capback250
"use strict";
function brokenClock(startingTime, wrongTime, errorDescription){
let [errorNum, errorMetr, _, iterNum, iterMetric] = errorDescription.split(' ');
const converter = (number, metric) => {
let scale = /second/.test(metric) ? 1 : /minute/.test(metric) ? 60 : 3600;
return number * scale
};
const toSeconds = (data) => data.split(':').map((el, i) => el * Math.pow(60, 2-i)).reduce((a, b) => a + b);
const toString = (seconds) => {
let date = new Date(null);
date.setSeconds(seconds);
return date.toISOString().substr(11, 8)
};
let delta = toSeconds(wrongTime) - toSeconds(startingTime);
let timer = converter(iterNum, iterMetric);
let errorTimer = timer + converter(errorNum, errorMetr);
return toString(toSeconds(startingTime) + delta / (errorTimer / timer))
}
May 2, 2017