--- epic: 4 story: 4.6 title: "Relative Time Expressions" status: draft --- ## Epic 4 — Date, Time & Time Zones **Goal:** Full date/time math, business day calculations, and timezone awareness. ### Story 4.6: Relative Time Expressions As a CalcPad user, I want to write relative time expressions like "2 hours ago" or "next Wednesday", So that I can reference dates and times naturally without specifying absolute values. **Acceptance Criteria:** **Given** the expression `2 hours ago` **When** the engine evaluates it **Then** it returns a `DateTime` representing the current time minus 2 hours **Given** the expression `next Wednesday` **When** the engine evaluates it **Then** it returns the date of the next upcoming Wednesday **And** if today is Wednesday, it returns the following Wednesday (not today) **Given** the expression `last Friday at 3pm` **When** the engine evaluates it **Then** it returns the date of the most recent past Friday at 3:00 PM in the user's local timezone **Given** the expression `3 days ago` **When** the engine evaluates it **Then** it returns the date that was 3 days before today **Given** the expression `in 2 weeks` **When** the engine evaluates it **Then** it returns the date 14 days from today **Given** the expression `yesterday` **When** the engine evaluates it **Then** it returns the date of the previous day **Given** the expression `tomorrow at noon` **When** the engine evaluates it **Then** it returns tomorrow's date at 12:00 PM in the user's local timezone **Given** the expression `last Monday` when evaluated on a Monday **When** the engine evaluates it **Then** it returns the previous Monday (7 days ago), not today