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