From 7eade002a7bc711fbedf822644331cc42c4c30a7 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 21 May 2025 00:37:12 +0300 Subject: [PATCH] LibC: Fix `mktime` yday calculation was off so results were always off for march-december --- userspace/libraries/LibC/time.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/userspace/libraries/LibC/time.cpp b/userspace/libraries/LibC/time.cpp index 02d6f007ab..c775924fe3 100644 --- a/userspace/libraries/LibC/time.cpp +++ b/userspace/libraries/LibC/time.cpp @@ -131,8 +131,8 @@ time_t mktime(struct tm* tm) tm->tm_mon %= 12; tm->tm_yday = tm->tm_mday - 1; - if (tm->tm_mon > 0) - tm->tm_yday += month_days[tm->tm_mon - 1]; + for (int i = 0; i < tm->tm_mon; i++) + tm->tm_yday += month_days[i]; const time_t num_febs = (tm->tm_mon > 1) ? tm->tm_year + 1 : tm->tm_year; const time_t leap_years = (num_febs - 69) / 4 - (num_febs - 1) / 100 + (num_febs + 299) / 400;