/** * Преобразует секунды в формат "дни ЧЧ:ММ:СС" (если дни > 0) * или просто "ЧЧ:ММ:СС" (если дней нет). * @param {number} totalSeconds - количество секунд (целое неотрицательное число) * @returns {string} отформатированная строка */ function formatSeconds(totalSeconds) { if (totalSeconds < 0) return "0 00:00:00"; const days = Math.floor(totalSeconds / 86400); let remainder = totalSeconds % 86400; const hours = Math.floor(remainder / 3600); remainder %= 3600; const minutes = Math.floor(remainder / 60); const seconds = remainder % 60; // Форматируем часы, минуты, секунды с ведущими нулями const timePart = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; if (days === 0) { return timePart; } // Склонение слова "день" let dayWord; const lastDigit = days % 10; const lastTwoDigits = days % 100; if (lastTwoDigits >= 11 && lastTwoDigits <= 14) { dayWord = "дней"; } else { switch (lastDigit) { case 1: dayWord = "день"; break; case 2: case 3: case 4: dayWord = "дня"; break; default: dayWord = "дней"; } } return `${days} ${dayWord} ${timePart}`; } module.exports = {formatSeconds}