@@ -57,6 +57,7 @@ data FormatterCommand
5757 | DayOfMonth
5858 | UnixTimestamp
5959 | DayOfWeek
60+ | DayOfWeekName
6061 | Hours24
6162 | Hours12
6263 | Meridiem
@@ -89,6 +90,7 @@ printFormatterCommand = case _ of
8990 DayOfMonth → " D"
9091 UnixTimestamp → " X"
9192 DayOfWeek → " E"
93+ DayOfWeekName → " A"
9294 Hours24 → " HH"
9395 Hours12 → " hh"
9496 Meridiem → " a"
@@ -125,6 +127,7 @@ formatterCommandParser = (PC.try <<< PS.string) `oneOfAs`
125127 , Tuple " DD" DayOfMonthTwoDigits
126128 , Tuple " D" DayOfMonth
127129 , Tuple " E" DayOfWeek
130+ , Tuple " A" DayOfWeekName
128131 , Tuple " HH" Hours24
129132 , Tuple " hh" Hours12
130133 , Tuple " a" Meridiem
@@ -167,6 +170,7 @@ formatCommand dt@(DT.DateTime d t) = case _ of
167170 DayOfMonth → show $ fromEnum $ D .day d
168171 UnixTimestamp → show $ Int .floor $ (_ / 1000.0 ) $ unwrap $ unInstant $ fromDateTime dt
169172 DayOfWeek → show $ fromEnum $ D .weekday d
173+ DayOfWeekName → show $ D .weekday d
170174 Hours24 → padSingleDigit (fromEnum $ T .hour t)
171175 Hours12 → padSingleDigit $ fix12 $ (fromEnum $ T .hour t) `mod` 12
172176 Meridiem → if (fromEnum $ T .hour t) >= 12 then " PM" else " AM"
@@ -356,6 +360,8 @@ unformatCommandParser = case _ of
356360 }
357361 -- TODO we would need to use this value if we support date format using week number
358362 DayOfWeek → void $ parseInt 1 (validateRange 1 7 ) " Incorrect day of week"
363+ DayOfWeekName → _{day = _} `modifyWithParser`
364+ (fromEnum <$> parseDayOfWeekName)
359365 Hours24 → _{hour = _} `modifyWithParser`
360366 (parseInt 2 (validateRange 0 24 <> exactLength) " Incorrect 24 hour" )
361367 Hours12 → _{hour = _} `modifyWithParser`
@@ -405,6 +411,18 @@ parseMeridiem = (PC.try <<< PS.string) `oneOfAs`
405411 , Tuple " PM" PM
406412 ]
407413
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+
408426parseMonth ∷ ∀ m . Monad m ⇒ P.ParserT String m D.Month
409427parseMonth = (PC .try <<< PS .string) `oneOfAs`
410428 [ Tuple " January" D.January
0 commit comments