2025-12-07 14:31:16 +01:00
|
|
|
import dayjs from 'dayjs';
|
|
|
|
|
import { ITimeFormatConfig } from './ITimeFormatConfig';
|
|
|
|
|
|
|
|
|
|
export class DateService {
|
|
|
|
|
constructor(private config: ITimeFormatConfig) {}
|
|
|
|
|
|
|
|
|
|
parseISO(isoString: string): Date {
|
|
|
|
|
return dayjs(isoString).toDate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getDayName(date: Date, format: 'short' | 'long' = 'short'): string {
|
|
|
|
|
return new Intl.DateTimeFormat(this.config.locale, { weekday: format }).format(date);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getWeekDates(offset = 0): string[] {
|
|
|
|
|
const monday = dayjs().startOf('week').add(1, 'day').add(offset, 'week');
|
2025-12-07 21:08:05 +01:00
|
|
|
return Array.from({ length: 7 }, (_, i) =>
|
2025-12-07 14:31:16 +01:00
|
|
|
monday.add(i, 'day').format('YYYY-MM-DD')
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|