40 lines
943 B
Nim
40 lines
943 B
Nim
import times
|
|
|
|
const zeroTime = fromSeconds(0)
|
|
|
|
proc format*(ti: TimeInterval, fmt: string): string =
|
|
let info = getGMTime(fromSeconds(0) + ti)
|
|
return info.format(fmt)
|
|
|
|
proc `-`*(a, b: TimeInfo): TimeInterval =
|
|
return seconds(cast[int](a.toTime - b.toTime))
|
|
|
|
proc `>`*(a, b: TimeInfo): bool =
|
|
return a.toTime > b.toTime
|
|
|
|
proc `<`*(a, b: TimeInfo): bool =
|
|
return a.toTime < b.toTime
|
|
|
|
proc `>=`*(a, b: TimeInfo): bool =
|
|
return a.toTime >= b.toTime
|
|
|
|
proc `<=`*(a, b: TimeInfo): bool =
|
|
return a.toTime <= b.toTime
|
|
|
|
proc `>`*(a, b: TimeInterval): bool =
|
|
return (zeroTime + a) > (zeroTime + b)
|
|
|
|
proc `<`*(a, b: TimeInterval): bool =
|
|
return (zeroTime + a) < (zeroTime + b)
|
|
|
|
proc `>=`*(a, b: TimeInterval): bool =
|
|
return (zeroTime + a) >= (zeroTime + b)
|
|
|
|
proc `<=`*(a, b: TimeInterval): bool =
|
|
return (zeroTime + a) <= (zeroTime + b)
|
|
|
|
proc cmp(a, b: TimeInfo): int =
|
|
if b == a: return 0
|
|
elif b > a: return 1
|
|
else: return -1
|