changeset 581:7be335c70443

(sun_week): Make %U work properly. Before, `date -d '1 Jan 1995' +%U' output `00'. Now it prints `01'.
author Jim Meyering <jim@meyering.net>
date Fri, 05 Apr 1996 23:33:09 +0000
parents a633b45de89f
children 3ec26150a8d6
files lib/strftime.c
diffstat 1 files changed, 5 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lib/strftime.c
+++ b/lib/strftime.c
@@ -242,13 +242,12 @@
 {
   int dl;
 
-  /* Set `dl' to the day in the year of the last day of the week previous
-     to the one containing the day specified in TM.  If the day specified
-     in TM is in the first week of the year, `dl' will be negative or 0.
-     Otherwise, calculate the number of complete weeks before our week
-     (dl / 7) and add any partial week at the start of the year (dl % 7). */
+  /* %U Week of the year (Sunday as the first day of the week) as a decimal
+     number [00-53]. All days in a new year preceding the first Sunday are
+     considered to be in week 0.  */
+
   dl = tm->tm_yday - tm->tm_wday;
-  return dl <= 0 ? 0 : dl / 7 + (dl % 7 != 0);
+  return dl < 0 ? 0 : dl / 7 + 1;
 }
 
 /* Return the week in the year of the time in TM, with the weeks