หรคุณ และ ปฏิทินสากลปัจจุบัน (Gregorian)
ในการเปลี่ยน หรคุณ ไปมาระหว่างวันที่ตามปฏิทินสุริยคติสากล (Gregorian) มีความจำเป็นอยู่เสมอๆ สูตรนี้จึงประดิษฐ์ขึ้นมาใหม่ เพื่อการคำนวณที่ง่ายขึ้น
Gregorian --> HD
----------------------
วันที่ d เดือน m ปีค.ศ. y เวลา hr:mn:sc
ตามปฏิทินสากลปัจจุบัน (ปัจจุบัน เป็นแบบ Gregorian )
สามารถ หา hd ได้ตามขั้นตอนดังนี้
1. ถ้า m > 2 แล้ว jy = y และ jm = m + 1
ถ้า m <= 2 แล้ว jy = y - 1 และ jm = m + 13
2. intgr = Floor[ Floor[365.25* jy] + Floor[30.6001* jm] + d + 1720995 ]
3. ja = Floor[0.01*jy]
4. intgr = intgr + 2 - ja + Floor[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
HD --> Gregorian
----------------------
การหาวันที่ d เดือน m ค.ศ. y เวลา hr:mn:sc
ตามปฏิทินสากลปัจจุบัน (ปัจจุบัน เป็นแบบ Gregorian )
จาก hd ที่ต้องการ
1. intgr = Floor[hd + 1954167.5]
2. frac = (hd + 1954167.5) - intgr
3. tmp = Floor[ ( (intgr - 1867216) - 0.25 ) / 36524.25 ]
4. j1 = intgr + 1 + tmp - Floor(0.25*tmp)
5. dayfrac = frac + 0.5
6. ถ้า ( dayfrac > 1 ) แล้ว dayfrac = dayfrac - 1 และ j1 = j1+1
7. j2 = j1 + 1524
8. j3 = Floor[ 6680.0 + ( (j2 - 2439870) - 122.1 )/365.25 ]
9. j4 = Floor[ j3*365.25 ]
10. j5 = Floor[ (j2 - j4)/30.6001 ]
11. d = Floor[ j2 - j4 - Floor[j5*30.6001] ]
12. m = Floor[ j5 - 1]
13. ถ้า ( m > 12 ) แล้ว m = m - 12
14. y = Floor[ j3 - 4715 ]
15. ถ้า ( m > 2 ) แล้ว y = y - 1
16. ถ้า ( y <= 0 ) แล้ว y = y - 1
17. hr = Floor[dayfrac*24]
18. mn = Floor[(dayfrac*24 - hr)*60];
19. sc = Round[((dayfrac*24 - hr)*60.0 - mn)*60.0];
20. ถ้า sc >= 60 แล้ว sc = sc - 60 และ mn = mn+1
แปลงจาก hd จะได้วันที่ตามปฏิทินสากลแบบ Gregorian
คือ วันที่ d เดือน m ค.ศ. y เวลา hr:mn:sc
0 ความคิดเห็น:
แสดงความคิดเห็น
สมัครสมาชิก ส่งความคิดเห็น [Atom]
<< หน้าแรก