times.Timezone changes (#8527)

* Use floorDiv in times.nim

* New implementation of times.Timezone

* Tweak doc comments

* Fix typo
This commit is contained in:
Oscar Nihlgård 2018-08-17 11:12:58 +02:00 • committed by Andreas Rumpf
commit 33ed8f7e73
4 changed files with 153 additions and 91 deletions

View file

@ -21,17 +21,17 @@ doAssert b - a == initDuration(seconds = 500_000_000)
# Because we can't change the timezone JS uses, we define a simple static timezone for testing.
proc staticZoneInfoFromUtc(time: Time): ZonedTime =
proc zonedTimeFromTime(time: Time): ZonedTime =
result.utcOffset = -7200
result.isDst = false
result.adjTime = time + 7200.seconds
result.time = time
proc staticZoneInfoFromTz(adjTime: Time): ZonedTIme =
proc zonedTimeFromAdjTime(adjTime: Time): ZonedTIme =
result.utcOffset = -7200
result.isDst = false
result.adjTime = adjTime
result.time = adjTime + initDuration(seconds = -7200)
let utcPlus2 = Timezone(zoneInfoFromUtc: staticZoneInfoFromUtc, zoneInfoFromTz: staticZoneInfoFromTz, name: "")
let utcPlus2 = newTimezone("", zonedTimeFromTime, zonedTimeFromAdjTime)
block timezoneTests:
let dt = initDateTime(01, mJan, 2017, 12, 00, 00, utcPlus2)