Mathcenter Forum

Mathcenter Forum (https://www.mathcenter.net/forum/index.php)
-   ทฤษฎีจำนวน (https://www.mathcenter.net/forum/forumdisplay.php?f=19)
-   -   การคำนวณปฏิทิน150ปี (https://www.mathcenter.net/forum/showthread.php?t=740)

kaiprasit 11 มกราคม 2005 11:59

การคำนวณปฏิทิน150ปี
 
อยากไดวิธีการคำนวณครับ ท่านใดพอมีความรู้บ้าง ช่วยส่งเสริมหน่อย :D

TOP 11 มกราคม 2005 16:13

ก่อนอื่นต้องแยกให้ออกก่อนครับ ว่าปีใดมี 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 \]
หลักๆก็มีแค่นี้ครับ ที่เหลือคำนวณเองได้ไม่ยากแล้ว ส่วนปฏิทินจันทรคติไม่เคยศึกษาครับ (โปรดอย่าถาม :p )

gon 11 มกราคม 2005 19:46

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

sck 13 มกราคม 2005 11:12

ยอดเยี่ยมครับ
อยากรู้นานแล้ว :D


เวลาที่แสดงทั้งหมด เป็นเวลาที่ประเทศไทย (GMT +7) ขณะนี้เป็นเวลา 00:05

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Modified by Jetsada Karnpracha