📄 y2k
字号:
QUESTION: Is c-client Y2K compliant?ANSWER: There are no known Y2K issues in c-client; nor have there everbeen any known Y2K issues in c-client from its inception. Some older versions of c-client don't like the two-digit year"00", although the only impact of this is that messages with that yearwill sort before any other messages. Nobody should be using two-digityears in email messages any more (use "2000" instead of "00"). You may wish to read the document calendar.txt for moreinformation about the Y4K, Y20K, and Y45K issues. Assuming thatc-client is still around in 2000-43,000 years, someone will have todeal with these. Within the plausible lifetimes of people today, there are threeknown date-related issues in c-client which will have to be addressedin the future. If I am still alive when the first problem hits, Iwill be nearly 82 years old, and won't be maintaining c-client anymore.Y2038: c-client, like most UNIX software, has Y2038 issues. On Tuesday,January 19, 2038 at 03:14:08 Coordinated Universal Time (also known asUTC, UT, or historically GMT), the clock on 32-bit UNIX systems willwrap around to a negative number; that is, from 0x7fffffff to0x80000000. c-client uses an unsigned long for its 32-bit time; however the Clibrary on most UNIX systems uses a signed long and will interpretthat time as being Friday, December 13, 1901 at 20:45:52 UTC. Fixing this problem will require changing the C library to useeither unsigned longs or a wider (e.g. 64-bit) value for time. Lotsof work will need to be done on 32-bit UNIX systems as 2038approaches. History suggests that most of the work will be done inthe autumn of 2037... ;-) It's not known if anything is necessary todo to c-client other than just rebuild it with the new C library. Going to 32-bit unsigned longs means that there will be a Y2106bug that someone will have to fix. Hopefully nobody will even thinkof using 32-bit systems by then.Y2070: c-client assumes that 2-digit years with values of 70 or greaterare in the 20th century, and that 2-digit years with values of 69 orless are in the 21st century. Time for UNIX began on January 1, 1970and email on ARPAnet happened between the first TENEX systems shortlyafter that; consequently there is no ambiguity with email data with2-digit years prior to the year 2070. This is used only when parsinga 2-digit year. c-client never generates one. Fixing this problem requires convincing people not to use 2-digityears. This is a lesson that people should have figured out 70 yearsearlier with Y2K. Consequently, this may be a "non-problem."Otherwise, look in mail_parse_date() for the comment "two digit year"and change the statement as desired. [Note: do not change thedefinition of BASEYEAR since the UNIX port assumes that this matcheswhen time began in the operating system.]Y2098: On January 1, 2098, the year in per-message internal dates willexpire, since a 7-bit field is allocated for the year. c-client willmistakenly think that the day is January 1, 1970. Fortunately, it is easy to fix this problem. Just increase thewidth of "year" in MESSAGECACHE in mail.h. If you make it 8 bits,it'll be good until January 1, 2216; 9 bits makes it good until 2482.10 bits will push it back that you'd worry about the Y2800 questionbefore having to increase it again. If you ignore Y2800, 11 bits willpush it it back to having to worry about Y4K first.Y2800: At this year, you will need to decide whether to keep the Gregoriancalendar, which is one day slow every 20,000 years, or go to the moreaccurate Eastern Orthodox calendar which is one day slow every 45,000years. The Gregorian and Eastern Orthodox calendars diverge at thisyear. There hasn't been any statement about how the internationalcommunity will deal with the situation of the Orthodox calendar beingone day ahead of the Gregorian calendar between 2800 and 2900. Thiswill happen again between 3200 and 3300, and at gradually increasingintervals until 48,300 when the shift becomes permanent (assuming noY20K or Y45K fixes). If you wish to make the transition to the Eastern Orthodox calendar,rebuild c-client with -DUSEORTHODOXCALENDAR=1. You can then ignore Y4Kand Y20K! Y4K: A little-known rule in the Gregorian calendar is that years thatare evenly divisible by 4000 are not leap years. Unlike the otherrules, this rule hasn't had effect yet, and won't for another 2000 years. To fix the Y4K problem, just rebuild c-client with -DY4KBUGFIX=1.Y20K: Those of you who stuck with the Gregorian calendar have aproblem; the calendar is now one day slow. The Pope has not made anystatement about how this problem will be fixed. Maybe they'll declarethat 20,004 is also not a leap year or something. There is no fix for this problem in c-client.Y45K: Greeks, Serbs, Russians, and other Eastern Orthodox have spentthe past 41,000 years laughing at westerners' increasingly futileefforts to keep the Gregorian calendar in order. The day of reckoninghas come; the Orthodox calendar is now one day slow. The Patriarch ofIstanbul (nee Constantinople) has not made any statement about how thiswill be fixed. There is no fix for this problem in c-client.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -