aboutsummaryrefslogtreecommitdiff
path: root/Aamukampa.Core/Library.fs
blob: aa7b7ea7e495b6ece4f20b1bf515994efbbf65bb (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
namespace TJLaskuri.Core

open System

module Domain =
    // TODO: More precise time: hours, minutes
    // TODO: Time until service starts

    let getStartDate kontingent =
        match serviceStartDates.TryGetValue(kontingent) with
        | true, startDate -> Some startDate
        | false, _ -> None

    let getEndDate kontingent serviceTime =
        getStartDate kontingent
        |> Option.map (fun startDate ->
            ServiceTime.getDays serviceTime
            |> fun x -> x - 1 // Count start date as well
            |> startDate.AddDays)

    let getTimeCompleted kontingent (now : DateTime) =
        getStartDate kontingent
        |> Option.map (fun date -> now.AddDays(1) - date)

    let getTimeLeft kontingent serviceTime (now : DateTime) =
        getEndDate kontingent serviceTime
        |> Option.map (fun date -> date - now)