43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
/** 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 { } |