ดูหนึ่งข้อความ
  #2  
Old 11 มกราคม 2005, 16:13
TOP's Avatar
TOP TOP ไม่อยู่ในระบบ
ผู้พิทักษ์กฎขั้นสูง
 
วันที่สมัครสมาชิก: 27 มีนาคม 2001
ข้อความ: 1,003
TOP is on a distinguished road
Lightbulb

ก่อนอื่นต้องแยกให้ออกก่อนครับ ว่าปีใดมี 365 วัน ปีใดมี 366 วัน

ปีที่มี 366 วัน (อธิกสุรทิน หรือ Leap Year) หากตรวจสอบจากปี คศ. คือปีที่
  1. หารด้วย 4 ลงตัว
  2. แต่หารด้วย 100 ไม่ลงตัว เว้นเสียแต่ว่า หารด้วย 400 ลงตัว
แต่เวลานำไปเขียนเป็นโปรแกรม หรือเล่นทายวันจากวันที่ในใจ ในช่วงปี คศ. บางช่วง ไม่จำเป็นต้องใช้เงื่อนไขครบถ้วน (มันกินแรง CPU เกินไป) เท่าที่พี่เคยตรวจสอบมาเป็นดังนี้

ถูกต้องในช่วงปี คศ. 2001 - 2339 เงื่อนไขคือ
  • หารด้วย 4 ลงตัว
  • แต่หารด้วย 100 ไม่ลงตัว
ถูกต้องในช่วงปี คศ. 1901 - 2099 เงื่อนไขคือ
  • หารด้วย 4 ลงตัว
อีกเรื่องหนึ่งที่จำเป็นต้องรู้คือ วันแรกของปี คศ. ตรงกับวันใด หาสูตรจากทฤษฏีจำนวนมาดู ก็จะพบว่า ให้หาค่าของ
\[ \left(Year + \left\lfloor \frac{Year - 1}{4} \right\rfloor - \left\lfloor \frac{Year - 1}{100} \right\rfloor + \left\lfloor \frac{Year-1}{400} \right\rfloor \right) \bmod 7 \]โดยหากได้ค่าเป็น
0 = อาทิตย์ , 1 = จันทร์ , 2 = อังคาร , 3 = พุธ , 4 = พฤหัสบดี , 5 = ศุกร์ , 6 = เสาร์

และเช่นเดียวกัน เวลานำไปเขียนเป็นโปรแกรม หรือเล่นทายวันจากวันที่ในใจ ในช่วงปี คศ. บางช่วง ไม่จำเป็นต้องใช้สูตรครบถ้วน (มันกินแรง CPU เกินไป) เท่าที่พี่เคยตรวจสอบมาเป็นดังนี้

ถูกต้องในช่วงปี คศ. 2001 - 2400 สูตรคือ
\[ \left(Year + \left\lfloor \frac{Year - 1}{4} \right\rfloor - \left\lfloor \frac{Year - 1}{100} \right\rfloor + 5 \right) \bmod 7 \]ถูกต้องในช่วงปี คศ. 1901 - 2100 สูตรคือ
\[ \left(Year + \left\lfloor \frac{Year - 1}{4} \right\rfloor + 6 \right) \bmod 7 \]
หลักๆก็มีแค่นี้ครับ ที่เหลือคำนวณเองได้ไม่ยากแล้ว ส่วนปฏิทินจันทรคติไม่เคยศึกษาครับ (โปรดอย่าถาม )
__________________
The difference between school and life?
In school, you're taught a lesson and then given a test.
In life, you're given a test that teaches you a lesson.

11 มกราคม 2005 19:56 : ข้อความนี้ถูกแก้ไขแล้ว 3 ครั้ง, ครั้งล่าสุดโดยคุณ TOP
ตอบพร้อมอ้างอิงข้อความนี้