initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user