summary refs log tree commit diff
path: root/time
diff options
context:
space:
mode:
Diffstat (limited to 'time')
-rw-r--r--time/strptime.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/time/strptime.c b/time/strptime.c
index 5f8271e250..9499e0f684 100644
--- a/time/strptime.c
+++ b/time/strptime.c
@@ -235,7 +235,7 @@ day_of_the_week (struct tm *tm)
 	      + (((corr_year / 4) / 25) / 4)
 	      + __mon_yday[0][tm->tm_mon]
 	      + tm->tm_mday - 1);
-  tm->tm_wday = wday % 7;
+  tm->tm_wday = ((wday % 7) + 7) % 7;
 }
 
 /* Compute the day of the year.  */
@@ -830,8 +830,14 @@ strptime_internal (buf, format, tm, decided)
   if (have_I && is_pm)
     tm->tm_hour += 12;
 
-  if (want_century && century != -1)
-    tm->tm_year = tm->tm_year % 100 + (century - 19) * 100;
+  if (century != -1)
+    {
+      if (want_century)
+	tm->tm_year = tm->tm_year % 100 + (century - 19) * 100;
+      else
+	/* Only the century, but not the year.  Strange, but so be it.  */
+	tm->tm_year = (century - 19) * 100;
+    }
 
   if (want_xday && !have_wday) {
       if ( !(have_mon && have_mday) && have_yday)  {