-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.elm
64 lines (45 loc) · 1.27 KB
/
main.elm
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import Html exposing (Html, div, p, text)
import Html.App as App
import Html.Attributes exposing (..)
import Time exposing (Time, second)
origTime = 1463324400
fmtTime time =
let days = time // (60 * 60 * 24)
hours = (time // (60 * 60)) - days * 24
minutes = (time // 60) - (hours * 60) - (days * 60 * 24)
seconds = time `rem` 60
in (toString days) ++ " days, " ++ (toString hours) ++ " hours, "
++ (toString minutes) ++ " minutes, and " ++ (toString seconds) ++ " seconds"
main =
App.program
{ init = init
, view = view
, update = update
, subscriptions = subscriptions
}
-- MODEL
type alias Model = Int
init : (Model, Cmd Msg)
init =
(origTime, Cmd.none)
-- UPDATE
type Msg
= Tick Time
update : Msg -> Model -> (Model, Cmd Msg)
update action model =
case action of
Tick newTime ->
let inttime = round <| Time.inSeconds newTime in
(inttime - origTime, Cmd.none)
-- SUBSCRIPTIONS
subscriptions : Model -> Sub Msg
subscriptions model =
Time.every second Tick
-- VIEW
view : Model -> Html Msg
view model =
div [class "container"]
[ p [] [ text "it has been"]
, p [class "the-time"] [ text <| fmtTime model ]
, p [] [ text "of joyless grey misery since James last tasted a cigarette" ]
]