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 mozurin
"use strict";
function brokenClock(startingTime, wrongTime, errorDescription)
{
const [start, wrong] = [startingTime, wrongTime].map(
e => {
const [h, m, s] = e.split(':').map(t => parseInt(t));
return h * 3600 + m * 60 + s;
}
)
const UNITS = {'second': 1, 'minute': 60, 'hour': 3600};
const [numerator, denominator] = errorDescription.split(' at ').map(
e => {
const [number, unit] = e.split(' ');
return parseInt(number) * (
UNITS[unit] || UNITS[unit.replace(/s$/, '')]
);
}
);
const correct = Math.floor(
start + (wrong - start) / (1 + numerator / denominator)
);
return [correct / 3600, correct % 3600 / 60, correct % 60].map(
e => Math.floor(e).toString().padStart(2, '0')
).join(':');
}
June 25, 2018
Comments: