Skip to content

Instantly share code, notes, and snippets.

@everm1nd
Last active November 7, 2018 16:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save everm1nd/7115e48a9c547160756393667e878abe to your computer and use it in GitHub Desktop.
Save everm1nd/7115e48a9c547160756393667e878abe to your computer and use it in GitHub Desktop.
[WIP] Simple Time Difference Kata done by students: https://www.codewars.com/kata/simple-time-difference/train/javascript
// https://www.codewars.com/kata/simple-time-difference/train/javascript
function solve(arr){
return arr.map(convertTimeToMinutes).sort((a, b) => a - b);
// const day = convertTimeToMinutes('24:00')
// const firstTime = convertTimeToMinutes(arr[0])
// const nextDayTime = firstTime + day
// return convertMinutesToTime(nextDayTime - firstTime - 1)
}
function calculateDistances(element, index, array) {
const next = array[index + 1]
const prev = array[index - 1]
const current = element
return next - current
}
function convertTimeToMinutes(timeString) {
const hoursAndMins = timeString.split(':').map((elem) => parseInt(elem));
const minutes = hoursAndMins[0] * 60 + hoursAndMins[1];
return minutes
}
function convertMinutesToTime(totalMinutes) {
const hours = Math.floor(totalMinutes / 60)
const minutes = totalMinutes - hours * 60
const format = (number) => number < 10 ? `0${number}` : `${number}`
return format(hours) + ':' + format(minutes)
}
//////////
describe("Basic tests", function(){
Test.assertEquals(solve(["14:51"]), "23:59");
Test.assertEquals(solve(["23:00","04:22","18:05","06:24"]),"11:40");
// Test.assertEquals(solve(["21:14", "15:34", "14:51", "06:25", "15:30"]),"09:10");
});
describe("time to integer converter", function(){
Test.assertEquals(convertTimeToMinutes("01:10"), 70);
Test.assertEquals(convertTimeToMinutes("00:00"), 0);
});
describe("integer to time converter", function(){
Test.assertEquals(convertMinutesToTime(70), "01:10");
Test.assertEquals(convertMinutesToTime(0), "00:00");
});
describe("calculate distances", function(){
Test.assertEquals(calculateDistances(['00:10','01:15']), 65);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment