mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-23 03:16:53 +00:00
Comparing datetimes
This commit is contained in:
@@ -274,6 +274,18 @@ proc toTime*(dt: DateTime): Time {.tags: [], raises: [], benign.} =
|
||||
# so we need to compensate for that here.
|
||||
result.inc dt.utcOffset
|
||||
|
||||
proc `<`*(a, b: DateTime): bool =
|
||||
## Returns true iff ``a < b``, that is iff a happened before b.
|
||||
return a.toTime < b.toTime
|
||||
|
||||
proc `<=` * (a, b: DateTime): bool =
|
||||
## Returns true iff ``a <= b``.
|
||||
return a.toTime <= b.toTime
|
||||
|
||||
proc `==`*(a, b: DateTime): bool =
|
||||
## Returns true if ``a == b``, that is if both dates represent the same point in datetime.
|
||||
return a.toTime == b.toTime
|
||||
|
||||
proc initDateTime(zt: ZonedTime, zone: Timezone): DateTime =
|
||||
let adjTime = zt.adjTime.int64
|
||||
let epochday = (if adjTime >= 0: adjTime else: adjTime - (secondsInDay - 1)) div secondsInDay
|
||||
|
||||
@@ -367,4 +367,12 @@ suite "ttimes":
|
||||
check $(dt - 1.months) == "2017-02-15T00:00:00+00:00"
|
||||
dt = initDateTime(31, mMar, 2017, 00, 00, 00, utc())
|
||||
# This happens due to monthday overflow. It's consistent with Phobos.
|
||||
check $(dt - 1.months) == "2017-03-03T00:00:00+00:00"
|
||||
check $(dt - 1.months) == "2017-03-03T00:00:00+00:00"
|
||||
|
||||
test "compare datetimes":
|
||||
var dt1 = now()
|
||||
var dt2 = dt1
|
||||
check dt1 == dt2
|
||||
check dt1 <= dt2
|
||||
dt2 = dt2 + 1.seconds
|
||||
check dt1 < dt2
|
||||
|
||||
Reference in New Issue
Block a user