Theppitak's blog

My personal blog.

18 เมษายน 2554

Thanks

ขอขอบคุณ คุณหน่อย SNC และ คุณวิทยา ที่ได้ หย่อนสตางค์ลงหมวก อีกครั้ง เพื่อสนับสนุนงานพัฒนาซอฟต์แวร์เสรีของผม ขอบคุณในการสนับสนุนมาตลอด ขอให้ทั้งสองท่านและครอบครัวมีสุขภาพแข็งแรง การงานราบรื่นครับ

ป้ายกำกับ:

15 เมษายน 2554

Science behind the Songkran Shift

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

ปฏิทิน Gregorian ที่เราใช้กันอยู่ เป็นปฏิทินสำหรับดูฤดูกาลบนโลก ซึ่งคาบของปีจะอ้างอิงกับ equinox และ solstice โดยจะพยายามให้วันทั้งสี่ตกอยู่ในวันที่เดียวกันทุกปี (อาจมีการเลื่อนขึ้นเลื่อนลงได้ไม่เกินหนึ่งวัน) ทำให้สามารถบอกฤดูกาลได้จากปฏิทิน ซึ่งจะช่วยให้ผู้คนบนโลกสามารถวางแผนการเพาะปลูก การปรับตัวกับสภาพอากาศ และอื่น ๆ ได้

ส่วนนิยามของสงกรานต์คือ การโคจรเข้าราศีเมษของดวงอาทิตย์ คือเป็นการอ้างอิงดวงดาวคงที่ คาบของสงกรานต์จึงหมายถึง ปี sidereal คือคาบของการโคจรของโลกรอบดวงอาทิตย์ในทางดาราศาสตร์

สิ่งที่ทำให้ปฏิทินฤดูกาลแตกต่างจากคาบการโคจรของโลกรอบดวงอาทิตย์ก็คือ การควงส่ายของแกนโลก ครับ

โลกไม่ได้หมุนรอบตัวเองรอบแกนคงที่เหมือนไก่ย่างในเตาอบ แต่มีการหมุนควงของแกนเหมือนลูกข่างด้วย ด้วยอัตราประมาณ 1 องศาต่อ 72 ปี (ตกรอบละเกือบ 26,000 ปี) การหมุนควงนี้ ทำให้ตำแหน่งของ solstice และ equinox มีการเปลี่ยนแปลงตามแนวการเอียงของแกนโลกที่เปลี่ยนไปด้วย โดยทิศทางการควงจะทำให้ solstice และ equinox มาถึงเร็วขึ้นเมื่อเทียบกับการไม่หมุนควง ด้วยเหตุนี้ ปีฤดูกาลจึงสั้นกว่าคาบการโคจรของโลกรอบดวงอาทิตย์เล็กน้อย

ด้วยตัวเลข 365.25875 วัน/ปีที่ตำราสุริยยาตร์ใช้ ก็เท่ากับว่าวันสงกรานต์โดยเฉลี่ยจะขยับเพิ่ม 1 วันในระยะเวลา 1 / (365.25875 - 365.2425) = 61.54 ปี และจะน็อครอบปีปฏิทินในเวลา 61.54×365.2425 = 22,476.46 ปี

ผมลองคำนวณวันมหาสงกรานต์และเถลิงศกของ พ.ศ. 25031 (= 2554 + 22477) ก็ได้ว่าอย่างนี้ (สังเกตว่าปีปฏิทินจะเลื่อนไปข้างหน้าหนึ่งปี):

  • วันมหาสงกรานต์: 13 เมษายน 25032, 11:43:48 น.
  • วันเถลิงศก: 15 เมษายน 25032, 15:41:24 น.

แล้วเจอกันครับ ถ้ามนุษย์ยังอยู่ในโลกนี้และสามารถผ่านสงกรานต์หน้าหนาวช่วงธันวามาได้ :)

ป้ายกำกับ: ,

13 เมษายน 2554

Songkran Shift

อ.กิตติ์ได้นำเสนอ วิธีคำนวณวันมหาสงกรานต์ตามสูตรของ พันตรี บุนนาค ทองเนียม ซึ่งสูตรน่าสนใจมาก หลังจากคุยกันผ่าน Facebook ผมก็แยกธาตุสูตรได้ดังนี้

ตัวสูตร:

เถลิงศก = (จศ * 0.25875) - floor(จศ/4 + 0.5) + floor (จศ/100 + 0.38) - floor(จศ/400 + 0.595) - 5.53375

เป็นการหาส่วนต่างระหว่างคาบการโคจรของโลกรอบดวงอาทิตย์ที่ 365.25875 วัน (ข้อมูลดาราศาสตร์ = 365.256363004 วัน แต่ช่างมันก่อน ในที่นี้เราจะใช้ค่าของสุริยยาตร์) กับปฏิทิน Gregorian ที่ 1 ปีจะมี 365.2425 วัน เท่านั้น ทำให้วันสงกรานต์โดยเฉลี่ยจะขยับออกไปทีละนิด

  • (จศ * 0.25875) = เศษวันที่เกิน 365 วันทั้งหมดที่เกิดขึ้นนับตั้งแต่ จศ 0 มา
  • จากนั้น ลบด้วยจำนวนเศษวันที่ปฏิทิน Gregorian ได้เพิ่มเข้ามาในช่วงเดียวกัน คือ floor(จศ/4 + 0.5) - floor(จศ/100 + 0.38) + floor(จศ/400 + 0.595) โดยถือว่า ที่ จ.ศ. 0 ซึ่งเท่ากับ ค.ศ. 638 นั้น เฟสเริ่มต้นของ modulo แต่ละตัวตามปฏิทิน Gregorian จะเป็น (638 % 4) / 4 = 0.5, (638 % 100) / 100 = 0.38 และ (638 % 400) / 400 = 0.595 ตามลำดับ
  • จากนั้น บวกด้วยเวลาของวันเถลิงศกของ จ.ศ. 0 คือ -5.53375 คือราว 5 วันครึ่งก่อน 0 นาฬิกาของวันที่ 31 มีนาคม (ซึ่งนับเป็นวันที่ 0 ก่อนวันที่ 1 ของเดือนเมษายน) ซึ่งคำนวณแล้วก็ตกวันที่ 25 มีนาคม พ.ศ. 1811 เวลา 11 นาฬิกา 11 นาที 24 วินาที เป็นเวลาอ้างอิง

จากวันเถลิงศกที่เวลาอ้างอิง ผ่านมาพันกว่าปี ตอนนี้วันเถลิงศกเลื่อนจาก 25 มีนาคม มาเป็นวันที่ 16 เมษายนแล้ว เพราะคาบของสงกรานต์ยาวกว่าปีปฏิทิน Gregorian ส่วนวันมหาสงกรานต์ตามสูตร "มหาสงกรานต์ = เถลิงศก - 2.165 วัน" ก็เลื่อนจาก 23 มีนาคม มาเป็น 14 เมษายน

ที่น่าสังเกตคือ ในเมื่อคาบของสงกรานต์ยาวกว่าปีปฏิทิน Gregorian ก็เท่ากับว่าวันสงกรานต์จะเลื่อนไปข้างหน้าเรื่อย ๆ ไม่มีย้อนกลับ ยกเว้นกรณีปัดเศษเล็ก ๆ น้อย ๆ และขณะนี้สงกรานต์ก็ได้เลื่อนมาเป็น 14-16 เมษายนแล้ว โดยปีหน้า 2555 จะเป็นปีสุดท้ายที่วันเถลิงศกยังตกวันที่ 15 เพราะอาศัยความที่เป็นปีอธิกสุรทิน แต่ก็จวน 16 รอมร่อ (23:43:48 น.) ต่อจากนั้น ตั้งแต่ 2556 เป็นต้นไป วันเถลิงศกก็จะไม่กลับมาตกวันที่ 15 อีกแล้ว แม้ปีอธิกสุรทินถัดไป คือ 2559 วันที่เพิ่มเข้ามาไม่สามารถยื้อวันเถลิงศกให้อยู่ในวันที่ 15 ได้อีกแล้ว (เถลิงศก 16 เมษายน 2559 0:34:12 น.)

จึงน่าสนใจว่า ในขณะที่วันสงกรานต์ตามประเพณีมีวันไม่ตรงกับปฏิทินสากล แต่วันหยุดราชการยังคงเป็น 13-15 เมษายน ไม่เปลี่ยนแปลง ทำให้เกิดความสับสนในการเฉลิมฉลองตามประเพณี เช่นที่อภิปรายกันใน กระทู้เรือนไทย ว่าทำให้บางปีต้องประกอบพิธีวันพญาวันในวันเนาที่เป็นวันที่ห้ามทำพิธีใด ๆ เพราะปฏิทินราชการว่าอย่างนั้น แม้จะขัดกับปฏิทินโหราศาสตร์ เป็นต้น

จากที่คำนวณนี้ ปี 2556 อาจเป็นโอกาสอันดีที่ราชการจะเปลี่ยนวันหยุดราชการในช่วงสงกรานต์ให้เป็น 14-16 เมษายนแทน ถ้าจะยังใช้วันหยุดตายตัวเหมือนเดิม อย่างน้อยก็จะไม่ขัดกับวันตามประเพณีทุกปีเหมือนใช้วันหยุดเดิม

สวัสดีปีใหม่ไทยครับ :-)

ป้ายกำกับ:

hacker emblem