From 1407208c4c5682ed86c9275a22f75971d4d47ac5 Mon Sep 17 00:00:00 2001 From: cuz Date: Wed, 13 Nov 2002 18:08:36 +0000 Subject: [PATCH] Fixed %W/%U git-svn-id: svn://svn.cc65.org/cc65/trunk@1517 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/common/strftime.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/libsrc/common/strftime.c b/libsrc/common/strftime.c index 467d13516..803c3d8cd 100644 --- a/libsrc/common/strftime.c +++ b/libsrc/common/strftime.c @@ -67,7 +67,6 @@ size_t __fastcall__ strftime (char* buf, size_t bufsize, const char* format, char c; char arg[40]; const char* argptr; - unsigned week; /* Copy until we reach the end of the format string or a format specifier */ count = 0; @@ -132,20 +131,12 @@ size_t __fastcall__ strftime (char* buf, size_t bufsize, const char* format, break; case 'U': - week = tm->tm_yday / 7; - if (tm->tm_mday % 7 > tm->tm_wday) { - ++week; - } - sprintf (arg, "%02u", week); + sprintf (arg, "%02d", (tm->tm_yday + 7 - tm->tm_wday) / 7); break; case 'W': - /* ### This one is buggy */ - week = tm->tm_yday / 7; - if (tm->tm_mday % 7 > tm->tm_wday) { - ++week; - } - sprintf (arg, "%2u", week); + sprintf (arg, "%02d", + (tm->tm_yday + 7 - (tm->tm_wday? tm->tm_wday - 1 : 6)) / 7); break; case 'X': -- 2.39.5