Quick actions

cmd+k|ctrl+k

Navigation

Languages

whenwas.fs

Snippet info

Language

Fsharp

Visibility

public

Author

spencerwi

Created

2016-04-22T17:35:35Z

Updated

2016-04-22T17:35:35Z

open System

type DateScale = Hour | Hours | Day | Days | Week | Weeks
type DateDirection = Ago | Forward

let getDate interval scale direction =
    let hoursToAdd = match scale with
                        | Hour  | Hours -> interval
                        | Day   | Days  -> interval * 24
                        | Week  | Weeks -> interval * 24 * 7
    in
    let signedHours = match direction with
                        | Ago       -> -1 * hoursToAdd
                        | Forward   -> hoursToAdd
    in
    signedHours
    |> float
    |> System.DateTime.Now.AddHours
;;

getDate 1 Week Ago
|> printfn "%A"

INFO