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"