Date Calculator

# Grammar
Expr      = ('+' | '-') Expr
          | '(' Expr ')'
          | Expr ('+' | '-') Expr
          | TimePoint
          | Duration
TimePoint = 'today'
          | 'now'
          | "1787213715387"       # Instant
          | "YYYY-MM-DD HH:mm:ss" # PlainDateTime
          | "YYYY-MM-DD"          # PlainDate
          | "YYYY-MM"             # PlainYearMonth
          | "MM-DD"               # PlainMonthDay
          | "HH:mm:ss"            # PlainTime
Duration  = "±PnYnMnWnDTnHnMnS"   # ISO8601 duration format
          | "n years and m days"  # Units may be abbreviated, e.g. 5 ms