import { parse, format, addDays } from 'date-fns' const FRONTEND_FORMAT = 'dd.MM.yyyy' const BACKEND_FORMAT = 'yyyy-MM-dd' export function getDays({ startDate, endDate, }: { startDate: Date endDate: Date }) { let currentDay = new Date(startDate.getTime()) const days = [dateFormatBackend(currentDay)] if (!endDate) { return days } while (currentDay < endDate) { currentDay = addDays(currentDay, 1) days.push(dateFormatBackend(currentDay)) } return days } function dateFormat(date: Date, formatString: string) { if (!date) { return null } return format(date, formatString) } export function dateFormatBackend(date: Date) { return dateFormat(date, BACKEND_FORMAT) } export function dateFormatFrontend(date: Date) { return dateFormat(date, FRONTEND_FORMAT) } function dateParse(input: string, formatString: string) { const date = parse(input, formatString, new Date()) if (date.getTime() !== NaN) { return date } return null } export function dateParseFrontend(input: string) { return dateParse(input, FRONTEND_FORMAT) }