Dates & Durations

Date keywords, literals, arithmetic, and duration calculations.

From testdata/eval/success/features/dates.cm.

Date Keywords #

d1 = today
d2 = tomorrow
d3 = yesterday
Results
d1 = todayThu, Apr 30, 2026
d2 = tomorrowFri, May 1, 2026
d3 = yesterdayWed, Apr 29, 2026

Date Literals (Month Day) #

d4 = Dec 25
d5 = January 15
d6 = Jul 4
Results
d4 = Dec 25Fri, Dec 25, 2026
d5 = January 15Thu, Jan 15, 2026
d6 = Jul 4Sat, Jul 4, 2026

Date Literals (Month Day Year) #

d7 = Dec 25 2025
d8 = January 1 2026
d9 = Jul 4 2024
Results
d7 = Dec 25 2025Thu, Dec 25, 2025
d8 = January 1 2026Thu, Jan 1, 2026
d9 = Jul 4 2024Thu, Jul 4, 2024

Date Arithmetic #

d10 = today + 2 days
d11 = tomorrow + 1 week
d12 = Dec 25 2025 + 7 days
d13 = today - 3 days
d14 = yesterday - 1 week
Results
d10 = today + 2 daysSat, May 2, 2026
d11 = tomorrow + 1 weekFri, May 8, 2026
d12 = Dec 25 2025 + 7 daysThu, Jan 1, 2026
d13 = today - 3 daysMon, Apr 27, 2026
d14 = yesterday - 1 weekWed, Apr 22, 2026

Named Date References #

christmas = Dec 25 2025
new_year = christmas + 7 days
week_before = Dec 25 2025 - 1 week
Results
christmas = Dec 25 2025Thu, Dec 25, 2025
new_year = christmas + 7 daysThu, Jan 1, 2026
week_before = Dec 25 2025 - 1 weekThu, Dec 18, 2025

Duration Literals #

dur1 = 2 days
dur2 = 3 weeks
dur3 = 1 hour
dur4 = 30 minutes
dur5 = 1 year
Results
dur1 = 2 days2 day
dur2 = 3 weeks3 week
dur3 = 1 hour1 hour
dur4 = 30 minutes30 minute
dur5 = 1 year1 year

Duration Arithmetic #

total_time = 2 weeks + 3 days
Results
total_time = 2 weeks + 3 days2.43 week

“X from Y” Syntax #

d15 = 2 days from today
d16 = 3 weeks from tomorrow
d17 = 1 week from yesterday
d18 = 5 days from Dec 25 2025

d19 = 1 month from today
d20 = 2 years from Jan 1 2025
Results
d15 = 2 days from todaySat, May 2, 2026
d16 = 3 weeks from tomorrowFri, May 22, 2026
d17 = 1 week from yesterdayWed, May 6, 2026
d18 = 5 days from Dec 25 2025Tue, Dec 30, 2025
d19 = 1 month from todaySat, May 30, 2026
d20 = 2 years from Jan 1 2025Fri, Jan 1, 2027

What This Demonstrates #

  • Built-in date keywords: today, tomorrow, yesterday
  • Date literals with month names (abbreviated or full)
  • Date + duration arithmetic
  • Named date variables in expressions
  • Duration literals with various time units
  • X from Y syntax as an alternative to Y + X