17 มกราคม 2556

การหาหรคุณประสงค์จากปฏิทินสุริยคติสากล


การหาหรคุณประสงค์จากปฏิทินสุริยคติสากล

ตัวแปร
d = วันที่ , m = เดือน , y = ค.ศ. , hr = ชั่วโมง , mn = นาที , sc = วินาที

สูตรคำนวณ

1. ถ้า m > 2 แล้ว jy = y และ jm = m + 1
ถ้า m <= 2 แล้ว jy = y - 1 และ jm = m + 13
2. intgr = Int[ Int[365.25* jy] + Int[30.6001* jm] + d + 1720995 ]
3. ja = Int[0.01*jy]
4. intgr = intgr + 2 - ja + Int[0.25*ja]
5. dayfrac = hr/24.0-0.5
ถ้า dayfrac < 0 แล้ว dayfrac = dayfrac + 1 และ intgr = intgr - 1
6. frac = dayfrac + (mn + sc/60)/60/24
7. hd = Round[ (intgr + frac - 1954167.5)*100000] / 100000

ตัวอย่างการคำนวณ
          ข้อมูลที่เราต้องใช้ในการคำนวณ หรคุณประสงค์ โดยใช้ปฏิทินสุริยคติสากล(Gregorian) คือ วันที่ เดือน ค.ศ. ชั่วโมง นาที วินาที ที่เราต้องการจะหาหรคุณ ในที่นี้ยกตัวอย่างการคำนวณ วันที่ 12 เดือน 8 (สิงหาคม ) ค.ศ. 1984 เวลา 09:03:00 น.
          d = 12           m = 8           y = 1984
          hr = 9           mn = 3                   sc = 0

1. ถ้า m > 2 แล้ว jy = y และ jm = m + 1
   ถ้า m <= 2 แล้ว jy = y - 1 และ jm = m + 13

พิจารณาเงื่อนไข
          1.1 ถ้าเดือน(m)มีค่ามากกว่า 2 ให้ตัวแปร jy = y (jy = ค.ศ.) และให้ตัวแปร jm = m+1 (jm = เดือน+1)
          1.2 ถ้าเดือน(m)มีค่าน้อยกว่าหรือเท่ากับ 2 ให้ตัวแปร jy = y - 1 (jy = ค.ศ. - 1) และให้ตัวแปร jm = m+13 (jm = เดือน+13)
          ตัวอย่างของเราเดือนสิงหาคม = 8 มีค่ามากกว่า 2 ฉะนั้นอยู่ในเงื่อนไขที่ 1.1 นำเข้าสูตรคำนวณได้ว่า jy = 1984 และ jm = 9 (มาจาก m+1)

2. intgr = Int[ Int[365.25* jy] + Int[30.6001* jm] + d + 1720995 ]
          ต่อไปเป็นการหาค่าของตัวแปรที่ชื่อว่า intgr โดยนำข้อมูลที่เรามีเข้าสูตรได้ดังนี้
intgr    = Int[ Int[365.25* 1984] + Int[30.6001* 9] + 12 + 1720995 ]
= Int[ Int[724656] + Int[275.4009] + 12 + 1720995 ]
= Int[ Int[724931.4009] + 12 + 1720995 ]
= Int[ Int[724931.4009] + 12 + 1720995 ]
intgr    = 2445938
          สรุปคือตัวแปร intgr = 2445938 โดยค่าในวงเล็บ int() หมายถึงการปัดเศษค่าตัวเลขเป็นจำนวนเต็ม เช่น Int[724931.4009] = 724931 เป็นต้น

3. ja = Int[0.01*jy]
          ต่อไปเป็นการหาค่าตัวแปร ja โดยค่า jy ของเราคือ 1984 นำเข้าสูตรคำนวณได้ ดังนี้
          ja = Int[0.01 x 1984]
          ja = Int[19.84]
          ja = 19
          สรุปคือตัวแปร ja = 19

4. intgr = intgr + 2 - ja + Int[0.25*ja]
          ต่อไปเป็นการหาค่าตัวแปร intgr ครั้งที่สอง โดยนำค่า intgr เดิมมาร่วมคำนวณด้วย ดังนี้
          Intgr = 2445938 + 2 - 19 + int(0.25 x 19)
          Intgr = 2445938 + 2 - 19 + int(4.75)
          Intgr = 2445938 + 2 - 19 + 4
          Intgr = 2445925
          สรุปตัวแปร intgr ครั้งที่สองนี้มีค่าเท่ากับ 2445925

5. dayfrac = hr/24.0-0.5
   ถ้า dayfrac < 0 แล้ว dayfrac = dayfrac + 1 และ intgr = intgr - 1
          ต่อไปเป็นการหาค่าตัวแปรที่มีชื่อว่า dayfrac โดยค่าที่เราจะต้องนำมาใช้ในการคำนวณคือ ค่าชั่วโมง hr ของเราในที่นี้ hr = 9 นำเข้าสูตรการคำนวณ ดังนี้
          dayfrac = 9/24.00 - 0.5  (เครื่องหมาย / หมายถึง หาร)
          dayfrac = 0.375 - 0.5 
          dayfrac = 0.375 - 0.5 
dayfrac = -0.125
สรุปว่าค่าของตัวแปร dayfrac = -0.125 แล้วยังมีเงื่อนไขในสูตรหัวข้อนี้อีกว่า ถ้าตัวแปร dayfrac มีค่าน้อยกว่า 0 แล้ว dayfrac = dayfrac + 1 และ intgr = intgr – 1 โดยที่ค่า dayfrac ของเราเท่ากับ -0.125 เป็นจำนวนติดลบซึ่งมีค่าน้อยกว่า 0 จึงแทนสูตรในเงื่อนไข ดังนี้
dayfrac = -0.125 + 1            intgr = 2445925 – 1
dayfrac = 0.875                   intgr = 2445924

6. frac = dayfrac + (mn + sc/60)/60/24
ต่อไปเป็นการหาค่าตัวแปรที่มีชื่อว่า frac โดยค่าที่เราจะต้องนำมาใช้ในการคำนวณคือ dayfrac , mn(นาที) , sc(วินาที) โดยที่ค่า dayfrac = 0.875 , mn = 3 , sc = 0 จึงแทนสูตรในเงื่อนไข ดังนี้
frac = 0.875  + (3 + 0/60)/60/24
frac = (0.875  + 3) /60 /24
frac = 3.875 /60 /24
frac = 0.0026909722222222

7. hd = Round[ (intgr + frac - 1954167.5) x 100000] / 100000
          ต่อไปเป็นการหาค่าตัวแปรที่มีชื่อว่า hd ซึ่งก็คือหรคุณที่เราต้องการนั้นเอง โดยตัวแปรที่นำมาเกี่ยวข้องกับการคำนวณ คือ intgr = 2445924 , frac = 0.0026909722222222 ซึ่งสามารถนำมาเข้าสูตรได้ดังนี้
          hd = Round [ (2445924 + 0.0026909722222222  - 1954167.5) x 100000] / 100000
          hd = Round [ (2445924 + 0.0026909722222222  - 1954167.5) x 100000] / 100000
hd = Round(491756.5026909722)
[ค่าที่อยู่ในวงเล็บของ Round() หมายถึง การปัดค่าเศษทศนิยมท้ายให้เป็นจำนวนเต็ม] ดังนั้น
hd = 491757
ฉะนั้นจากสูตรทั้ง 7 ข้อข้างต้น เราจึงได้ หรคุณประสงค์ จากข้อมูลปฏิทินสุริยคติ คือ 491757 โดยที่ค่าทศนิยม(เวลา)ของ hd มีค่ามากกว่า 0 คือ 0. 5026909722 ถือว่าผ่านเข้าสู่วันใหม่ไปแล้ว จึงบวกหรคุณเพิ่มขึ้นอีก 1 ดังนั้น หรคุณ(hd) = 491757 + 1 = 491758
หากเรานำหรคุณที่คำนวณได้มาหารด้วย 7 เศษที่ได้จากการหารจะเป็นวันในสัปดาห์(วาร) โดยที่เศษ 1 = วันอาทิตย์,เศษ 2 = วันจันทร์,เศษ 3 = วันอังคาร,เศษ 4 = วันพุธ,เศษ 5 = วันพฤหัสบดี,เศษ 6 = วันศุกร์,เศษ 7 = วันเสาร์
โดยในที่นี้ข้อมูลตัวอย่างของเรา คือ วันอาทิตย์ ที่ 12 เดือนสิงหาคม ค.ศ.1984 ลองนำหรคุณที่คำนวณได้มาหารด้วย 7 แล้วพิจารณาเศษว่าออกมาตรงกับวันของข้อมูลตัวอย่างหรือไม่
491758 / 7 = 70251.14285714286 (ลัพธ์) เศษจากการหารคือ 1 ซึ่งก็ตรงกับวันอาทิตย์ตามข้อมูลตัวอย่าง ถือว่าการคำนวณที่เราทำมานี้มีความถูกต้อง สามารถนำเอาผลหรคุณประสงค์นี้ไปใช้กับการคำนวณหาตำแหน่งดาวตามคัมภีร์สุริยยาตร์และมานัตต์ได้ต่อไป


บทความโดย ธีรพร  เพชรกำแพง
18 มกราคม 2556 เวลา 12.00 น.