/*
Use integer division and modulo:
1 minute = 60 seconds
1 hour = 60 minutes
1 day = 24 hours
1 week = 7 days
*/
/*
Convert a total number of seconds into weeks, days, hours,
minutes, and seconds. The function receives the total seconds
and returns each component in an object.
*/
function convertSeconds(totalSeconds) {
const SECS_PER_MIN = 60;
const SECS_PER_HOUR = 60 * SECS_PER_MIN;
const SECS_PER_DAY = 24 * SECS_PER_HOUR;
const SECS_PER_WEEK = 7 * SECS_PER_DAY;
// Compute each unit using integer division and modulo
const weeks = Math.floor(totalSeconds / SECS_PER_WEEK);
totalSeconds %= SECS_PER_WEEK;
const days = Math.floor(totalSeconds / SECS_PER_DAY);
totalSeconds %= SECS_PER_DAY;
const hours = Math.floor(totalSeconds / SECS_PER_HOUR);
totalSeconds %= SECS_PER_HOUR;
const minutes = Math.floor(totalSeconds / SECS_PER_MIN);
const seconds = totalSeconds % SECS_PER_MIN;
return { weeks, days, hours, minutes, seconds };
}
const seconds = 1_000_000;
const result = convertSeconds(seconds);
console.log(
`${result.weeks} weeks, ` +
`${result.days} days, ` +
`${result.hours} hours, ` +
`${result.minutes} minutes, ` +
`${result.seconds} seconds`
);
/*
run:
1 weeks, 4 days, 13 hours, 46 minutes, 40 seconds
*/