Вывод времени, которое делится на 5
Задача такая: через js мне надо, чтобы выводились минуты, которые делятся на 5.
Пример:
12:05, 12:10, 12:15 ... 12:55, 13:00 и так дальше.
Если сейчас 12:02, то чтобы выводило 12:00, если 12:04, то опять же 12:00, если время равняется 12:05, то выводило 12:05.
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
можно сделать просто в лоб - дешево и сердито:
let time = "12:07";
time = time.substr(0, time.length - 1) + ['0', '0', '0', '0', '0', '5', '5', '5', '5', '5'][Number.parseInt(time[time.length - 1])]
еще более грубее и сердитее (чтобы с числами не иметь дело вообще):
time = time.substr(0, time.length - 1) + {'0': '0', '1': '0', '2': '0', '3': '0', '4': '0', '5': '5', '6': '5', '7': '5', '8': '5', '9': '5'}[time[time.length - 1]]
чуть короче, но также сердито:
time = time.substr(0, time.length - 1) + ({'0': '0', '1': '0', '2': '0', '3': '0', '4': '0'}[time[time.length - 1]] || '5')
Автор решения: entithat
→ Ссылка
Проще всего разделить на часы и минуты, и для минут найти ближайшее число, которое меньше либо равно минутам и нацело делится на 5.
const t = '12:06'.split(':');
console.log(`${t[0]}:${String(t[1] - (t[1] % 5)).padStart(2, '0')}`);
Для нескольких часов:
const times = ['12:02', '12:09', '12:11', '12:15'];
for (const t of times) {
const _t = t.split(':');
console.log(`${_t[0]}:${String(_t[1] - (_t[1] % 5)).padStart(2, '0')}`);
}