feat: convert to nextjs
This commit is contained in:
33
utils/dateFunctions.ts
Normal file
33
utils/dateFunctions.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
export function getWeekRanges(
|
||||
targetDate: Date,
|
||||
numWeeks: number
|
||||
): Array<{ start: Date; end: Date }> {
|
||||
if (numWeeks < 1 || numWeeks > 8) {
|
||||
throw new Error('Number of weeks must be between 1 and 8');
|
||||
}
|
||||
|
||||
const ranges = [];
|
||||
const firstDay = new Date(targetDate);
|
||||
firstDay.setUTCHours(0, 0, 0, 0);
|
||||
|
||||
const dayOfWeek = firstDay.getUTCDay();
|
||||
const diff = dayOfWeek === 0 ? -6 : 1 - dayOfWeek;
|
||||
firstDay.setUTCDate(firstDay.getUTCDate() + diff);
|
||||
|
||||
for (let i = 0; i < numWeeks; i++) {
|
||||
const weekStart = new Date(firstDay);
|
||||
weekStart.setUTCDate(weekStart.getUTCDate() + i * 7);
|
||||
|
||||
const weekEnd = new Date(weekStart);
|
||||
weekEnd.setUTCDate(weekEnd.getUTCDate() + 6);
|
||||
weekEnd.setUTCHours(23, 59, 59, 999);
|
||||
|
||||
ranges.push({ start: weekStart, end: weekEnd });
|
||||
}
|
||||
|
||||
return ranges;
|
||||
}
|
||||
|
||||
export function isDateInRange(date: Date, start: Date, end: Date): boolean {
|
||||
return date >= start && date <= end;
|
||||
}
|
||||
Reference in New Issue
Block a user