47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
---
|
|
epic: 4
|
|
story: 4.4
|
|
title: "Business Day Calculations"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 4 — Date, Time & Time Zones
|
|
**Goal:** Full date/time math, business day calculations, and timezone awareness.
|
|
|
|
### Story 4.4: Business Day Calculations
|
|
|
|
As a CalcPad user,
|
|
I want to calculate dates by business days (skipping weekends and optionally holidays),
|
|
So that I can compute deadlines and delivery dates in a work context.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the expression `10 business days from today`
|
|
**When** the engine evaluates it on a Monday
|
|
**Then** it returns the date two weeks from today (skipping two weekends)
|
|
|
|
**Given** the expression `10 business days from today`
|
|
**When** the engine evaluates it on a Wednesday
|
|
**Then** it counts forward 10 weekdays, correctly skipping Saturday and Sunday
|
|
**And** the result is the Wednesday of the following week plus the remaining days
|
|
|
|
**Given** the expression `5 business days from Friday`
|
|
**When** the engine evaluates it
|
|
**Then** it starts counting from the next Monday (skipping the weekend)
|
|
**And** the result is the following Friday
|
|
|
|
**Given** a holiday calendar is configured for the US locale
|
|
**When** the expression `3 business days from December 23, 2025` is evaluated
|
|
**Then** it skips December 25 (Christmas) in addition to weekends
|
|
**And** the result reflects the correct business day
|
|
|
|
**Given** no holiday calendar is configured
|
|
**When** business day calculations are performed
|
|
**Then** only weekends (Saturday and Sunday) are skipped
|
|
**And** all other days are treated as business days
|
|
|
|
**Given** the expression `today - 5 business days`
|
|
**When** the engine evaluates it
|
|
**Then** it counts backward, skipping weekends
|
|
**And** the result is the correct past business date
|