Airtable logo

Airtable

San Francisco, CASoftware

Interview Questions

Project Completion Date Calculator

Asked at Airtable
technical
date manipulation
algorithms

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:

  • Mar 1 (Fri): Day 1
  • Mar 2-3: Weekend
  • Mar 4: Holiday
  • Mar 5 (Tue): Day 2
  • Mar 6 (Wed): Day 3
  • Mar 7 (Thu): Day 4
  • Mar 8 (Fri): Day 5

Follow-up: Large Working Days
- Use date arithmetic for efficiency
- Calculate complete weeks
- Handle remaining days
- Optimize holiday checks

Share Your Experience at Airtable