/** Vrátí datum v ISO formátu. */ export function formatDate(date: Date) { let currentDay = String(date.getDate()).padStart(2, '0'); let currentMonth = String(date.getMonth() + 1).padStart(2, "0"); let currentYear = date.getFullYear(); return `${currentYear}-${currentMonth}-${currentDay}`; } /** Vrátí human-readable reprezentaci předaného data pro zobrazení. */ export function getHumanDate(date: Date) { let currentDay = String(date.getDate()).padStart(2, '0'); let currentMonth = String(date.getMonth() + 1).padStart(2, "0"); let currentYear = date.getFullYear(); let currentDayOfWeek = date.toLocaleDateString("CZ-cs", { weekday: 'long' }); return `${currentDay}.${currentMonth}.${currentYear} (${currentDayOfWeek})`; } /** Vrátí human-readable reprezentaci předaného času pro zobrazení. */ export function getHumanTime(time: Date) { let currentHours = String(time.getHours()).padStart(2, '0'); let currentMinutes = String(time.getMinutes()).padStart(2, "0"); return `${currentHours}:${currentMinutes}`; } /** * Vrátí index dne v týdnu, kde pondělí=0, neděle=6 * * @param date datum * @returns index dne v týdnu */ export const getDayOfWeekIndex = (date: Date) => { // https://stackoverflow.com/a/4467559 return (((date.getDay() - 1) % 7) + 7) % 7; } /** Vrátí true, pokud je předané datum o víkendu. */ export function getIsWeekend(date: Date) { const index = getDayOfWeekIndex(date); return index == 5 || index == 6; } // TODO umístit do samostatného souboru export class InsufficientPermissions extends Error { }