@@ -57,6 +57,7 @@ data FormatterCommand
57
57
| DayOfMonth
58
58
| UnixTimestamp
59
59
| DayOfWeek
60
+ | DayOfWeekName
60
61
| Hours24
61
62
| Hours12
62
63
| Meridiem
@@ -89,6 +90,7 @@ printFormatterCommand = case _ of
89
90
DayOfMonth → " D"
90
91
UnixTimestamp → " X"
91
92
DayOfWeek → " E"
93
+ DayOfWeekName → " A"
92
94
Hours24 → " HH"
93
95
Hours12 → " hh"
94
96
Meridiem → " a"
@@ -125,6 +127,7 @@ formatterCommandParser = (PC.try <<< PS.string) `oneOfAs`
125
127
, Tuple " DD" DayOfMonthTwoDigits
126
128
, Tuple " D" DayOfMonth
127
129
, Tuple " E" DayOfWeek
130
+ , Tuple " A" DayOfWeekName
128
131
, Tuple " HH" Hours24
129
132
, Tuple " hh" Hours12
130
133
, Tuple " a" Meridiem
@@ -167,6 +170,7 @@ formatCommand dt@(DT.DateTime d t) = case _ of
167
170
DayOfMonth → show $ fromEnum $ D .day d
168
171
UnixTimestamp → show $ Int .floor $ (_ / 1000.0 ) $ unwrap $ unInstant $ fromDateTime dt
169
172
DayOfWeek → show $ fromEnum $ D .weekday d
173
+ DayOfWeekName → show $ D .weekday d
170
174
Hours24 → padSingleDigit (fromEnum $ T .hour t)
171
175
Hours12 → padSingleDigit $ fix12 $ (fromEnum $ T .hour t) `mod` 12
172
176
Meridiem → if (fromEnum $ T .hour t) >= 12 then " PM" else " AM"
@@ -356,6 +360,8 @@ unformatCommandParser = case _ of
356
360
}
357
361
-- TODO we would need to use this value if we support date format using week number
358
362
DayOfWeek → void $ parseInt 1 (validateRange 1 7 ) " Incorrect day of week"
363
+ DayOfWeekName → _{day = _} `modifyWithParser`
364
+ (fromEnum <$> parseDayOfWeekName)
359
365
Hours24 → _{hour = _} `modifyWithParser`
360
366
(parseInt 2 (validateRange 0 24 <> exactLength) " Incorrect 24 hour" )
361
367
Hours12 → _{hour = _} `modifyWithParser`
@@ -405,6 +411,18 @@ parseMeridiem = (PC.try <<< PS.string) `oneOfAs`
405
411
, Tuple " PM" PM
406
412
]
407
413
414
+
415
+ parseDayOfWeekName ∷ ∀ m . Monad m ⇒ P.ParserT String m D.Weekday
416
+ parseDayOfWeekName = (PC .try <<< PS .string) `oneOfAs`
417
+ [ Tuple " Monday" D.Monday
418
+ , Tuple " Tuesday" D.Tuesday
419
+ , Tuple " Wednesday" D.Wednesday
420
+ , Tuple " Thursday" D.Thursday
421
+ , Tuple " Friday" D.Friday
422
+ , Tuple " Saturday" D.Saturday
423
+ , Tuple " Sunday" D.Sunday
424
+ ]
425
+
408
426
parseMonth ∷ ∀ m . Monad m ⇒ P.ParserT String m D.Month
409
427
parseMonth = (PC .try <<< PS .string) `oneOfAs`
410
428
[ Tuple " January" D.January
0 commit comments