| import type { DateLib } from "../classes/DateLib.js"; | |
| /** | |
| * Generates a series of 7 days, starting from the beginning of the week, to use | |
| * for formatting weekday names (e.g., Monday, Tuesday, etc.). | |
| * | |
| * @param dateLib The date library to use for date manipulation. | |
| * @param ISOWeek Whether to use ISO week numbering (weeks start on Monday). | |
| * @param broadcastCalendar Whether to use the broadcast calendar (weeks start | |
| * on Monday, but may include adjustments for broadcast-specific rules). | |
| * @returns An array of 7 dates representing the weekdays. | |
| */ | |
| export function getWeekdays( | |
| dateLib: DateLib, | |
| ISOWeek?: boolean | undefined, | |
| broadcastCalendar?: boolean | undefined, | |
| today?: Date, | |
| ): Date[] { | |
| const referenceToday = today ?? dateLib.today(); | |
| const start = broadcastCalendar | |
| ? dateLib.startOfBroadcastWeek(referenceToday, dateLib) | |
| : ISOWeek | |
| ? dateLib.startOfISOWeek(referenceToday) | |
| : dateLib.startOfWeek(referenceToday); | |
| const days: Date[] = []; | |
| for (let i = 0; i < 7; i++) { | |
| const day = dateLib.addDays(start, i); | |
| days.push(day); | |
| } | |
| return days; | |
| } | |