summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorcoffeepots <coffeepots@users.noreply.github.com>2015-07-16 10:20:34 +0100
committercoffeepots <coffeepots@users.noreply.github.com>2015-07-16 10:20:34 +0100
commita2f0fe03b634753fb26c6da899fcdefbb8e46035 (patch)
treed80a9f3462a4ef5c158c720e63e4beab6c4636fc
parentf09916d72034242a9bc4966ecf6f5590ed40d2cc (diff)
downloadNim-a2f0fe03b634753fb26c6da899fcdefbb8e46035.tar.gz
Fixed dayOfWeekJulian, exported SecondScale
-rw-r--r--lib/pure/times.nim12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/pure/times.nim b/lib/pure/times.nim
index efed1bbc0..a85998cb5 100644
--- a/lib/pure/times.nim
+++ b/lib/pure/times.nim
@@ -1064,7 +1064,7 @@ proc countYearsAndDays(daySpan: int): tuple[years: int, days: int] =
   result.days = days mod 365
 
 type
-  SecondScale = enum ssMinute, ssHour, ssDay, ssMonth, ssYear
+  SecondScale* = enum ssMinute, ssHour, ssDay, ssMonth, ssYear
 
 # these are very approximate beyond day
 const secondsIn*: array[SecondScale.low..SecondScale.high, int] =[
@@ -1099,10 +1099,7 @@ proc dayOfWeekJulian*(day, month, year: int): WeekDay =
     y = year - a
     m = month + (12*a) - 2
     d = (5 + day + y + (y div 4) + (31*m) div 12) mod 7
-  # The value of d is 0 for a Sunday, 1 for a Monday, 2 for a Tuesday, etc. so we must correct
-  # for the WeekDay type.
-  if d == 0: return dSun
-  result = (d-1).WeekDay
+  result = d.WeekDay
 
 proc decodeTime*(t: Time): TimeInfo =
   let
@@ -1252,3 +1249,8 @@ when isMainModule:
   assert dayOfWeek(21, 9, 1970) == dMon
   assert dayOfWeek(1, 1, 2000) == dSat
   assert dayOfWeek(1, 1, 2021) == dFri
+  # Julian tests
+  assert dayOfWeekJulian(21, 9, 1900) == dFri
+  assert dayOfWeekJulian(21, 9, 1970) == dMon
+  assert dayOfWeekJulian(1, 1, 2000) == dSat
+  assert dayOfWeekJulian(1, 1, 2021) == dFri