`cal` หักหรือไม่ เกิดอะไรขึ้นในเดือนกันยายน ค.ศ. 1752


28

หากคุณดูผลลัพธ์ของcal 9 1752คุณจะเห็นผลลัพธ์ที่แปลก:

   September 1752
 S  M Tu  W Th  F  S
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

เรื่องต่อไปนี้ที่มีชื่อว่า " cal 9 1752 อธิบาย" "ถูกคัดลอกออกจากรายการข่าวในช่วงต้นยุค 90 และถูกเก็บถาวรภายใต้คอลเล็กชันเรื่องตลกสำหรับผู้ชมคอมพิวเตอร์โดย David G. Wiseman (ผู้จัดการเครือข่ายในภาควิชาวิทยาการคอมพิวเตอร์ของมหาวิทยาลัย ออนแทรีโอตะวันตก)

คนที่เขียนคำสั่ง "cal" ในเครื่องรุ่น 7 เก่าบางรุ่นมีข้อผิดพลาดแบบออฟไลน์ในรหัสของเขา สิ่งนี้แสดงให้เห็นว่าเป็นผลลัพธ์ที่ผิดพลาดเมื่อตัวแปร malloc'd เขียนทับ 12 ไบต์พิเศษด้วยศูนย์ดังนั้นจึงนำไปสู่ผลลัพธ์ปฏิทินแปลก ๆ

ตอนนี้ไม่มีใครในใจที่ถูกต้องสนใจเรื่องปฏิทินในเดือนกันยายน ค.ศ. 1752 แม้ว่าความคิดของปี ค.ศ. 1752 จะไม่มีอยู่ภายใต้ UNIX เพราะเวลาไม่ได้เริ่มสำหรับ UNIX จนกระทั่งต้นปี 1970 ดังนั้นจึงไม่มีใครรู้เลยว่า "มีข้อผิดพลาดนี้จนกระทั่งในภายหลัง จากนั้นมีสำเนาของ "cal" นับพันที่ลอยอยู่รอบ ๆ พวกเขาส่วนใหญ่เป็นเลขฐานสองเท่านั้น มันสายเกินไปที่จะซ่อมพวกมันทั้งหมด

ดังนั้นในกลางปี ​​1975 เจ้าหน้าที่ระดับสูงของ AT&T ได้พบกับสมเด็จพระสันตะปาปาและมาถึงข้อตกลง ปฏิทินถูกเปลี่ยนย้อนหลังเพื่อให้กันยายน 1752 สอดคล้องกับความเป็นจริงของ UNIX เนื่องจากปฏิทินมีการเปลี่ยนแปลงโดยนับถอยหลังจากวันที่ 14 กันยายน ค.ศ. 1752 จึงไม่มีการกำหนดวันที่หลังจากนั้น วันที่ก่อนหน้านั้นถูกย้ายทั้งหมดภายใน 12 วัน พวกเขายังแก้ไข man page สำหรับ "cal" เพื่อบันทึกข้อผิดพลาดเป็นคุณสมบัติ

11 วันจาก 3 กันยายนถึง 13 กันยายนหายไปจากบันทึก พวกเขาค้นหาหนังสือประวัติศาสตร์และพบว่าโชคดีที่ไม่มีความสำคัญอะไรเกิดขึ้นในช่วง 11 วันนั้น

โดยรวมแล้วเหตุการณ์ทั้งหมดนี้ค่อนข้างไม่ใช่เหตุการณ์ ผู้เขียนนิยายวิทยาศาสตร์คนหนึ่งได้ยินในภายหลังเกี่ยวกับเรื่องนี้และระเบิดสิ่งต่าง ๆ ขึ้นมาเป็นผลงานเต็มรูปแบบของนิยายวิทยาศาสตร์ที่เรียกว่า "The Lathe of Heaven" หนังสือที่ฉันคิดว่าคล้ายกับสิ่งที่เกิดขึ้นจริง

อะไรคือคำอธิบายที่แท้จริงสำหรับความผิดปกติของเอาต์พุต


14
คุณไม่เห็น/humorไดเรกทอรีใน URL ที่คุณโพสต์หรือไม่ ;)
alex

1
ลิงค์นั้นทำให้ฉันหัวเราะได้ดี
jw013

1
... มีอะไรผิดปกติกับเอาท์พุทอีกครั้ง? : p
d33tah

ปฏิทินเกรโกเรียนที่เป็น proleptic ดูเหมือนจะสมเหตุสมผลมากกว่ามิฉะนั้นคุณจำเป็นต้องรู้ประเทศศาสนา ฯลฯ เพื่อกำหนดปฏิทินด้วยความแม่นยำ
jfs

1
แม้แต่ความคิดของปี 1752 ก็ไม่มีอยู่ใน UNIX ... ... แต่แนวคิดของ UNIX นั้นมีอยู่ในปี 1752 หรือไม่?
Alois Mahdal

คำตอบ:


49

หากต้องการติดตามเรื่องราวจริงลองใช้man calด้วยตัวคุณเอง:

The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd
of September.  By this time, most countries had recognized the reforma-
tion (although a few did not recognize it until the early 1900’s.)  Ten
days following that date were eliminated by the reformation, so the cal-
endar for that month is a bit unusual.

ถ้าประวัติของคุณเป็นร่างคุณให้ดำเนินการกับ Wikipedia เพื่อรับทราบข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้นในปฏิทินของ Gregorianและเป็นประวัติการยอมรับในส่วนต่าง ๆ ของโลก:

การปฏิรูปปฏิทินเกรกอเรียนประกอบด้วยสองส่วนคือการปฏิรูปปฏิทินจูเลียนตามเวลาของสมเด็จพระสันตะปาปาเกรกอรี่พร้อมกับการปฏิรูปวงจรจันทรคติที่โบสถ์ใช้พร้อมกับปฏิทินจูเลียนเพื่อคำนวณวันอีสเตอร์
[... ]
นอกจากการเปลี่ยนแปลงความยาวเฉลี่ยของปีปฏิทินจาก 365.25 วัน (365 วัน 6 ชั่วโมง) เป็น 365.2425 วัน (365 วัน 5 ชั่วโมง 49 นาที 12 วินาที) ลด 10 นาที 48 วินาทีต่อปี การปฏิรูปปฏิทินเกรโกเรียนก็จัดการกับความแตกต่างสะสมในอดีตระหว่างความยาวเหล่านี้
[ ... ]
เนื่องจากการปฏิรูปของโปรเตสแตนต์หลายประเทศในยุโรปตะวันตกไม่ได้ทำตามการปฏิรูปเกรกอเรียนและรักษาระบบแบบเก่าของพวกเขา ในที่สุดประเทศอื่น ๆ ตามการปฏิรูปเพื่อความมั่นคง แต่เมื่อถึงเวลาสมัครพรรคพวกสุดท้ายของปฏิทินจูเลียนในยุโรปตะวันออก (รัสเซียและกรีซ) เปลี่ยนเป็นระบบเกรโกเรียนในศตวรรษที่ 20 พวกเขาต้องทิ้ง 13 วันจากปฏิทินของพวกเขา เนื่องจากความแตกต่างของสะสมเพิ่มเติมระหว่างสองปฏิทินตั้งแต่ 1582
[ ... ]
สหราชอาณาจักรและจักรวรรดิอังกฤษ (รวมถึงส่วนทางทิศตะวันออกของสิ่งที่เป็นอยู่ในปัจจุบันในสหรัฐอเมริกา) รับรองปฏิทินเกรกอเรียนในปี 1752 ตามเวลาที่จำเป็นต้องแก้ไขโดย 11 วัน วันพุธที่ 2 กันยายน 2295 ตามมาด้วยวันพฤหัสบดีที่ 14 กันยายน 2295

เมื่อถึงเวลาที่ยูนิกซ์เข้ามาและรีเซ็ตนาฬิกาโลกให้เริ่มตั้งแต่วันที่ 1 มกราคม 1970 ไม่มีอะไรที่ต้องทำเกี่ยวกับความยุ่งเหยิงทั้งหมดยกเว้นเลือกวันที่เพื่อแสดงการรีเซ็ต เนื่องจากโลกนี้ได้นำระบบปฏิทินเกรโกเรียนมาใช้ในเวลาที่ต่างกันในแต่ละประเทศเวลาที่แน่นอนในการแก้ไขนี้จึงเป็นเรื่องที่ค่อนข้างแน่นอน

หากคุณมีเหตุผลที่จะนับวันที่ย้อนกลับไปในซอฟต์แวร์ของคุณคุณจะพบกับปัญหาที่สำคัญมากกว่าการรีเซ็ตเพียงครั้งเดียว! ประวัติความเป็นมาของปฏิทินเต็มไปด้วยความประหลาดใจ!


3
คำตอบที่ดี! เพื่อให้สิ่งต่าง ๆ มีความซับซ้อนยิ่งขึ้นสมาคมสงฆ์กรีกบางแห่งยังคงใช้ปฏิทินจูเลียนในปัจจุบัน
terdon

1
"เวลาที่แน่นอนในการแก้ไขนี้ค่อนข้างไม่มีกฎเกณฑ์" - นั่นเป็นเรื่องที่เกินความจริง เวอร์ชันที่แม่นยำยิ่งขึ้นคือ "ต้องใช้เวลาอย่างน้อยสถานที่ตั้งของผู้ใช้ในการจดจำวันที่ที่มีการแก้ไข" (ชาวสวีเดนคนหนึ่งมีแผนทะเยอทะยานที่จะละเลงการปฏิรูปปฏิทินในรอบ 40 ปี: en.wikipedia.org/wiki/Swedish_calendar )
Piskvor

4

นี่เป็นบทความที่ดีเกี่ยวกับปฏิทิน(PDF)ที่อธิบายถึงการเปลี่ยนแปลงอย่างช้าๆของเทศกาลอีสเตอร์ตลอดทั้งปีทำให้การแก้ไขวันที่นี้เป็นสิ่งที่จำเป็นและอธิบายเมื่อประเทศต่าง ๆ ทำการสลับ

บนหน้า 904:

เขา [Pope Greogory] ยังแก้ไขข้อผิดพลาดสะสม 10 วันในปฏิทินโดยประกาศว่าวันพฤหัสบดีที่ 4 ตุลาคม ค.ศ. 1582 ซีอีซึ่งเป็นวันสุดท้ายในรูปแบบเก่า (ปฏิทินจูเลียน) จะตามมาด้วยวันศุกร์ที่ 15 ตุลาคม ค.ศ. 1582 วันแรกของปฏิทินรูปแบบใหม่ (เกรกอเรียน) ประเทศคาทอลิกปฏิบัติตามกฎนี้ แต่ประเทศโปรเตสแตนต์ต่อต้าน: สเปนโปรตุเกสและอิตาลีรับเป็นบุตรบุญธรรมทันทีเช่นเดียวกับรัฐคาทอลิกในประเทศเยอรมนี ส่วนโปรเตสแตนต์ของเยอรมนีรอจนกระทั่ง 1700 ยอมรับ บริเตนใหญ่และอาณานิคม (รวมถึงสหรัฐอเมริกา ) รอจนกระทั่ง2295รัสเซียยื่นมือออกไปจนกระทั่งหลังการปฏิวัติใน 2461 และบัลแกเรียจนถึง 2463

กระดาษยังคงอ้างอิงรายการวันที่ยอมรับอย่างกว้างขวางซึ่งรวบรวมโดยนักดาราศาสตร์และอธิบายวิธีการแปลงระหว่างระบบปฏิทินที่แตกต่างกันอย่างตรงไปตรงมา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.