On Sun, Dec 17, 2017, at 11:33, William Cheswick wrote: > No, these weren’t seconds updates (though Plan 9 has a list it > applies.) These were off-by-one-hour problems at each time shift. > There would be a sudden flurry of hard, indignant work, then repeat > next time shift. This was in V10 Unix. That'd be daylight savings, then, not leap years. 1987 was the year that the US changed the date of the time shift from the last sunday of April to the first. The V10 source in the archive has an "octime.c" and "ctime.c", which differ in the "sunday" function: /* * The argument is a 0-origin day number. - * The value is the day number of the last - * Sunday before or after the day. + * The value is the day number of the next + * Sunday after the day. */ static sunday(t, d) register struct tm *t; register int d; { if (d >= 58) d += dysize(t->tm_year) - 365; - return(d - (d - t->tm_yday + t->tm_wday + 700) % 7); + return(d + 7 - (d - t->tm_yday + t->tm_wday + 700) % 7); } The "daytab" table itself (read in from /lib/dst) is not available in the archive - and even if it were, we can't know the history of how it was maintained or whether the 'flurry of hard work' involved maintaining this file, making that change to the ctime routine, or recompiling programs that needed it (and had been missed in a previous round).