Calculate project end date considering working days, weekends, and holidays.
interface Holiday {
date: Date;
name: string;
}
function calculateEndDate(
startDate: Date,
workingDays: number,
holidays: Holiday[]
): Date
Requirements:
- Skip weekends (Saturday, Sunday)
- Skip holidays
- Handle holiday-weekend overlaps
- Return final completion date
Example:
Input: startDate: "2024-03-01" (Friday) workingDays: 5 holidays: [ { date: "2024-03-04", name: "Company Holiday" } ]
Output: "2024-03-08" (Friday) Explanation:
Follow-up: Large Working Days
- Use date arithmetic for efficiency
- Calculate complete weeks
- Handle remaining days
- Optimize holiday checks