From 6805b85f898a361b2b03f1ff6e9872e13442b747 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 29 Feb 2024 20:20:37 +0000 Subject: [PATCH] Fix leap year bug --- core/time/time.odin | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/time/time.odin b/core/time/time.odin index 7911457de..72a09ad94 100644 --- a/core/time/time.odin +++ b/core/time/time.odin @@ -369,6 +369,10 @@ datetime_to_time :: proc "contextless" (year, month, day, hour, minute, second: mod = year % divisor return } + _is_leap_year :: proc "contextless" (year: int) -> bool { + return year%4 == 0 && (year%100 != 0 || year%400 == 0) + } + ok = true @@ -395,6 +399,10 @@ datetime_to_time :: proc "contextless" (year, month, day, hour, minute, second: days += int(days_before[_m]) + _d + if _is_leap_year(year) && _m >= 2 { + days += 1 + } + s += i64(days) * SECONDS_PER_DAY s += i64(hour) * SECONDS_PER_HOUR s += i64(minute) * SECONDS_PER_MINUTE