0 | module IotaTime.Pattern.CalendarDateTime
2 | import IotaTime.Calendar
3 | import IotaTime.Calendar.Gregorian
4 | import IotaTime.CalendarDateTime
5 | import IotaTime.LocalTime
6 | import IotaTime.Pattern
7 | import IotaTime.Pattern.Calendar
8 | import IotaTime.Pattern.CalendarDate
9 | import IotaTime.Pattern.LocalTime
15 | calendarDateTimePattern :
16 | {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
17 | Pattern dateState (CalendarDate calendar) ->
18 | Pattern timeState LocalTime ->
19 | Pattern (dateState, timeState) (CalendarDateTime calendar)
20 | calendarDateTimePattern = pairPattern datePart localTimeOfDay
21 | (\date, time => on time date)
25 | ps : {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
26 | Pattern (DateFields, TimeFields) (CalendarDateTime calendar)
27 | ps = calendarDateTimePattern (pR <% char 'T') pT
31 | po : {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
32 | Pattern (DateFields, TimeFields) (CalendarDateTime calendar)
33 | po = calendarDateTimePattern (pR <% char 'T') pr
37 | pf : {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
38 | Pattern (DateFields, TimeFields) (CalendarDateTime calendar)
39 | pf = calendarDateTimePattern (pD <% char ' ') pt
43 | pF : {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
44 | Pattern (DateFields, TimeFields) (CalendarDateTime calendar)
45 | pF = calendarDateTimePattern (pD <% char ' ') pT
49 | pg : {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
50 | Pattern (DateFields, TimeFields) (CalendarDateTime calendar)
51 | pg = calendarDateTimePattern (pd <% char ' ') pt
55 | pG : {calendar : Type} -> {auto patterned : CalendarPattern calendar} ->
56 | Pattern (DateFields, TimeFields) (CalendarDateTime calendar)
57 | pG = calendarDateTimePattern (pd <% char ' ') pT