summaryrefslogtreecommitdiff
path: root/lib/ur/datetime.ur
blob: a633dc831664b0b241a29ac48157406ec8821fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
type datetime = {
     Year : int,
     Month : int,
     Day : int,
     Hour : int,
     Minute : int,
     Second : int
}

datatype day_of_week = Sunday | Monday | Tuesday | Wednesday | Thursday |
         Friday | Saturday

val show = mkShow (fn dow => case dow of
                                 Sunday => "Sunday"
                               | Monday => "Monday"
                               | Tuesday => "Tuesday"
                               | Wednesday => "Wednesday"
                               | Thursday => "Thursday"
                               | Friday => "Friday"
                               | Saturday => "Saturday")

fun toTime dt : time = fromDatetime dt.Year dt.Month dt.Day
                                    dt.Hour dt.Minute dt.Second

fun fromTime t : datetime = {
    Year = datetimeYear t,
    Month = datetimeMonth t,
    Day = datetimeDay t,
    Hour = datetimeHour t,
    Minute = datetimeMinute t,
    Second = datetimeSecond t
}

fun datetimef fmt dt : string = timef fmt (toTime dt)

val now : transaction datetime =
    n <- now;
    return (fromTime n)