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 Moff
function parseTime(s) {
let d = new Date();
let sr = s.match(/(\d{2}):(\d{2}):(\d{2})/);
d.setHours(parseInt(sr[1]));
d.setMinutes(parseInt(sr[2]));
d.setSeconds(parseInt(sr[3]));
d.setMilliseconds(0);
return d;
}
function brokenClock(startingTime, wrongTime, errorDescription) {
const multiplier = {'second': 1, 'minute': 60, 'hour': 3600};
let t1 = parseTime(startingTime);
let t2 = parseTime(wrongTime);
let sr = errorDescription.match(/^([-|+]\d+)\s(second|minute|hour)s?\sat\s(\d+)\s(second|minute|hour)s?$/);
let a = parseInt(sr[1]) * multiplier[sr[2]];
let b = parseInt(sr[3]) * multiplier[sr[4]];
t1.setSeconds(t1.getSeconds() + Math.floor((t2 - t1) * b / (a + b) / 1000));
return t1.toTimeString().slice(0, 8);
}
July 10, 2017
Comments: