ข้ามไปเนื้อหา

วันจูเลียน

จากวิกิพีเดีย สารานุกรมเสรี
(เปลี่ยนทางจาก Julian date)

วันจูเลียน (Julian day หรือ Julian date) หรือ หรคุณจูเลียน[ม 1] บ้างเรียก จำนวนวันจูเลียน หรือ เลขวันจูเลียน (Julian day number) หมายถึง หมายเลขประจำวันซึ่งเริ่มนับเลขวัน 0 ตั้งแต่วันจันทร์ที่ 1 มกราคม ก่อนคริสต์ศักราช 4713 ปี (ค.ศ. -4712) ตามปฏิทินจูเลียน หรือวันที่ 22 พฤศจิกายน ก่อนคริสต์ศักราช 4714 ปี (ค.ศ. -4713) ตามปฏิทินก่อนเกรโกเรียน เวลา 12 นาฬิกาตรง จนถึงปัจจุบันหรือเวลาที่ต้องการ[1][2][3] เหตุที่กำหนดให้เริ่มวันที่ดังกล่าวนั้น เป็นเพราะต้องการให้ครอบคลุมถึงเหตุการณ์ทางประวัติศาสตร์ต่าง ๆ นอกจากการที่วันที่ดังกล่าวเป็นวันเริ่มวัฏจักรสิบห้าปี (indiction) วัฏจักรสุริยะ และวัฏจักรเมตอน ค่าวันจูเลียนหากคำนวณตามสูตรจากปฏิทินต่างระบบ หากเป็นวันที่เดียวกัน จะได้เลขเดียวกันเสมอไปไม่มีผิดเพี้ยน

ค่าวันจูเลียน ณ วันเวลาใด ๆ มีค่าเท่ากับค่าวันจูเลียน ลดลงเสีย 0.5 (เพราะนับที่เที่ยงวันเป็นหลักต้องถอยไปที่เที่ยงคืน) แล้วจึงเอาเวลาเป็นทศนิยมนับแต่เริ่มวันนั้นบวกเข้า[4] ยกตัวอย่างวันที่ 1 มกราคม พ.ศ. 2543 เวลา 0 นาฬิกา ค่าวันจูเลียนกำหนดที่ 2451544.5 และ ณ เวลา 12 นาฬิกา กำหนดที่ 2451545[5][6] อนึ่งเวลาที่ใช้นี้ ในอดีตใช้เวลามาตรฐานกรีนิชหรือเวลาปูมดาราศาสตร์ (ephemeris time) แต่ปัจจุบันแนะนำให้ใช้เวลาพื้นโลก (terrestrial time) เนื่องจากเวลามาตรฐานกรีนิชถือการหมุนรอบตัวของโลกเป็นหลักทำให้ไม่สม่ำเสมอ และบ่อยครั้งที่ต้องเติมอธิกวินาทีลงไปในเวลากรีนิชด้วย

ยุคจูเลียน เป็นช่วงเวลาทั้งสิ้น 7980 ปี นับปีแรกที่ก่อนคริสต์ศักราช 4713 ปี[7]

ในภาษาอังกฤษมีการใช้ Julian date เรียกสิ่งอื่นด้วยนอกเหนือจากค่าวันหรือลำดับวัน อาทิ ลำดับวันในหนึ่งปีนับแต่วันที่ 1 มกราคมสำหรับใช้ในการโปรแกรมคอมพิวเตอร์ การบริหารรัฐกิจ การทหาร และอุตสาหกรรมอาหาร[8] และวันที่ในปฏิทินจูเลียน

วิธีการคำนวณค่าวันจูเลียน ณ เที่ยงวัน จากวันที่

[แก้]

ขั้นตอนที่แสดงต่อไปนี้เป็นขั้นตอนสำหรับการคำนวณค่าวันจูเลียนจากวันที่ ปีที่ใช้ในการคำนวณให้ใช้คริสต์ศักราช (ไม่ใช่พุทธศักราช ซึ่งแปลงให้เป็นคริสต์ศักราชได้โดยเอา 543 ลบ) และให้นับอย่างนักดาราศาสตร์และโหราศาสตร์ ไม่ใช่อย่างนักประวัติศาสตร์ คือ ก่อนคริสต์ศักราช 100 ปี แบบนักประวัติศาสตร์ ตรงกับคริสต์ศักราช -99 แบบนักดาราศาสตร์ อีกนัยหนึ่งคือ ถ้ามีเอกสารสำคัญทางประวัติศาสตร์ระบุปีมา ให้ลดลง 1 แล้วใส่เครื่องหมายลบ ส่วนเดือนที่ใช้ในการคำนวณ นับ 1 ที่เดือนมกราคม นับ 2 ที่เดือนกุมภาพันธ์ ไปจนถึง 12 ที่เดือนธันวาคม

วันที่ในปฏิทินเกรโกเรียน

[แก้]

ขั้นตอนวิธีต่อไปนี้ใช้ได้กับวันที่ในปฏิทินเกรโกเรียนและปฏิทินก่อนเกรโกเรียน นับแต่วันที่ 23 พฤศจิกายน ค.ศ. -4713[9]

JDN = FLOOR(1461*(Y+4800+FLOOR((M-14)/12))/4)+FLOOR((367*(M-2-12*FLOOR((M-14)/12)  ))/12)-FLOOR(3*FLOOR((Y+4900+FLOOR((M-14)/12))/100,1)/4)+D-32077

โดยที่ FLOOR(x) คือ function ในการปัดเศษลง

Y ,M , D คือ ปี (ตามค.ศ.) เดือน และวันในเดือน ตามลำดับ

อีกวิธีหนึ่ง ให้ดำเนินการตามขั้นตอนต่อไปนี้[10]

  1. ถ้าเดือนน้อยกว่าหรือเท่ากับ 2 (คือ มกราคม และกุมภาพันธ์; M <= 2) ทำขั้นตอนต่อไปนี้
    1. ลดปีลงเสีย 1 (Y = Y - 1)
    2. บวกเดือนขึ้น 12 (M = M + 12)
  2. คำนวณเกณฑ์ต่อไปนี้: A = ปัดลง(Y/100)
  3. 2 - A + ปัดลง(A/4)
  4. JDN = ปัดลง(365.25 × (Y + 4716)) + ปัดลง(30.6001 × (M+1)) + D + B - 1525

ตัวอย่างการคำนวณ

[แก้]

วันที่ 26 เดือนธันวาคม พ.ศ. 2567 หรือ ค.ศ. 2024 คำนวณได้ดังนี้ Y = 2024, M = 12, D = 26

วิธีที่ 1

[แก้]
  • JDN = ปัดลง((1461 × (2024 + 4800 + ปัดลง( (12 − 14) / 12 ) )) / 4) = 2492100
  • + ปัดลง( (367 × (12 − 2 − 12 × ปัดลง( (12 − 14) / 12) )) / 12) = + 672
  • − ปัดลง( 3 × (ปัดลง ( (2024 + 4900 + ปัดลง( (12 − 14) / 12 ) ) / 100 ) )/4) = − 51
  • + 26 − 32076 = + -32051

ดังนั้น JDN = 2460670

วิธีที่ 2

[แก้]
  • M มากกว่าหรือเท่ากับ 3 คง M ไว้ตามเดิม
  • M มากกว่าหรือเท่ากับ 3 คง Y ไว้ตามเดิม
  • A = ปัดลง(2024/100) = 20
  • B = 2 − A + ปัดลง(168/4) = -13
  • JDN = ปัดลง(365.25 × (2024 + 4716)) + ปัดลง(30.6001 × (12+1)) + 26 + (-13) - 1525 = 2460671

วันที่ในปฏิทินจูเลียน

[แก้]

ขั้นตอนวิธีต่อไปนี้ใช้ได้กับวันที่ในปฏิทินจูเลียน นับแต่ ค.ศ. -4712 เป็นต้นมา[11]

JDN = 367 × Y − (7 × (Y + 5001 + (M − 9)/7))/4 + (275 × M)/9 + D + 1729776

การคำนวณค่าวันจูเลียน ณ เวลาอื่นนอกเหนือจาก 12 นาฬิกา

[แก้]

ค่าวันจูเลียนที่คิดเศษเวลา ณ เวลาอื่น ๆ นั้น คำนวณโดยใช้ใช้ความเข้าใจที่ว่า ค่าวันจูเลียนวัด ณ 12 นาฬิกา มีหน่วยเป็นวันเต็ม แต่เศษเวลาน้อยกว่า 1 วันเสมอไป ถ้าเวลาอยู่หลังเที่ยงวัน ก็ให้ทำให้เป็นเศษทศนิยมเอามาบวกกับค่าวันนั้นได้เลย แต่ถ้าเวลาอยู่ก่อนเที่ยงวัน ให้ลดค่าวันนั้นลงเสีย 0.5 แล้วเอาเศษเวลาบวก อีกวิธีหนึ่งคือใช้สูตรดังต่อไปนี้ กำหนด hour, minutes, second แทนชั่วโมง นาที วินาที ตามลำดับ จะได้

ถ้าชั่วโมงน้อยกว่า 12 สูตรจะลดค่าวันลงมา แต่ถ้าชั่วโมงมากกว่า 12 สูตรจะเพิ่มค่าวันขึ้นไป ตัวอย่างเช่น วันที่ 1 มกราคม พ.ศ. 2543 เวลา 18 นาฬิกา ตรงกับ JD = 2451545.25

ถ้าเวลานั้นอยู่เลยเที่ยงคืนไป ให้บวก JDN ขึ้น 1 คือเปลี่ยนไปใช้วันถัดไป พจน์ hour-12 จะติดลบเอง

การคำนวณวันในสัปดาห์จากค่าวันจูเลียน

[แก้]

เมื่อมีค่าวันจูเลียน ณ เวลาเที่ยงวันของวันใด จะคำนวณเป็นวันในสัปดาห์ ให้เอา 1 บวก แล้วเอา 7 หาร เศษเท่าใดพิจารณาตามตารางข้างล่าง หรือเขียนเป็นสมการคณิตศาสตร์ได้ว่า

W1 = mod(J + 1, 7)[12]

W1 (เศษการหาร) 0 1 2 3 4 5 6
วันในสัปดาห์ อาทิตย์ (อา/อ) จันทร์ (จ) อังคาร (อ/ภ) พุธ (พ/ว) พฤหัสบดี (พฤ/ช) ศุกร์ (ศ) เสาร์ (ส)

ถ้าค่าวันนั้นติดเศษทศนิยมมากกว่า 0.5 แสดงว่าเวลาเลยเที่ยงคืนขึ้นวันใหม่แล้วให้ปัดขึ้น แต่ถ้าน้อยกว่า แสดงว่าเวลาเพิ่งเลยเที่ยงมา ให้ปัดลงก่อนการคำนวณ

การคำนวณวันที่ในปฏิทินจูเลียนหรือเกรโกเรียนจากค่าวันจูเลียน

[แก้]

ขั้นตอนต่อไปนี้ใช้แปลงค่าวันจูเลียนเปํนวันที่ในปฏิทินเกรโกเรียนหรือก่อนเกรโกเรียน ใช้ได้กับค่าวัน 0 หรือมากกว่า[13][14] ตัวแปรทุกตัวเป็นจำนวนเต็มทั้งหมด หากมีเศษตัดทิ้ง

ตัวดำเนินการ ปัดลง(ตัวเลข) หมายถึงผลหารที่อยู่ในวงเล็บเมื่อคำนวณแล้วให้ยกเศษทศนิยมออก ตรงกับฟังก์ชัน floor ในภาษาโปรแกรมบางภาษา (อาทิ จาวาสคริปต์ ลูอา แมตแลบ) ส่วนตัวดำเนินการ เศษ(a,b คือการหารเอาเศษ เมื่อ a และ b แทนตัวตั้งและตัวหารตามลำดับ ตรงกับ mod หรือ fmod

ขั้นตอนวิธี

[แก้]
ขั้นตอนวิธีสำหรับปฏิทินเกรโกเรียน
ตัวแปร ค่า ตัวแปร ค่า
y 4716 v 3
j 1401 u 5
m 2 s 153
n 12 w 2
r 4 B 274277
p 1461 C −38

สำหรับปฏิทินจูเลียน:

1. f = J + j

สำหรับปฏิทินเกรโกเรียน:

1. f = J + j + ปัดลง((ปัดลง((4 × J + B) / 146097) × 3) / 4) + C

คำนวณ f แล้ว ทำต่อดังนี้:

2. e = r × f + v
3. g = ปัดลง(เศษ(e, p) / r)
4. h = u × g + w
5. D = ปัดลง((เศษ(h, s)) / u) + 1
6. M = เศษ(ปัดลง(h / s) + m, n) + 1
7. Y = ปัดลง(e / p) - y + ปัดลง((n + m - M) / n)

กำหนดให้ D, M, และ Y แทนวันที่ ลำดับเดือน และปีตามลำดับ

ตัวอย่างการคำนวณ

[แก้]

ค่าวันจูเลียน 2460671 แปลงกลับคืนเป็นวันที่ในปฏิทินเกรโกเรียนได้ตามขั้นตอนต่อไปนี้

1. f = 2460671 + 1401 + ปัดลง((ปัดลง((4*2460671 + 274277) / 146097)*3) / 4) -38 = 2462085
2. e = 4 × f + 3 = 4*2462085 + 3 = 9848343
3. g = ปัดลง(เศษ(e, 1461) / 4) = ปัดลง(เศษ(9848343, 1461) / 4) = 300
4. h = 5 × g + 2 = 5 × 300 + 2 = 1502
5. D = ปัดลง((เศษ(h, 153)) / 5) + 1 = ปัดลง((เศษ(1502, 153)) / 5) + 1 = 26
6. M = เศษ(ปัดลง(h / 153) + 2, 12) + 1 = เศษ(ปัดลง(1502 / 153) + 2, 12) + 1 = 12
7. Y = ปัดลง(e / 1461) - 4716 + ปัดลง((12 + 2 - M) / 12) = ปัดลง(9848343 / 1461) - 4716 + ปัดลง((12 + 2 - 12) / 12) = 2024

สรุปผลการคำนวณ วันที่ 26 เดือน 12 (ธันวาคม) ค.ศ. 2024 (พ.ศ. 2567)

อ้างอิงและหมายเหตุ

[แก้]

หมายเหตุ

[แก้]
  1. ตามคัมภีร์สุริยยาตร์และมานัต คำว่า หรคุณ หมายถึง ลำดับวันซึ่งนับจากวันที่คงตัวมาจนถึงปัจจุบัน เช่น วันที่ 24 มีนาคม พ.ศ. 1181 (วันสถาปนาจุลศักราช) โดยไม่ขาดสาย จึงอาจปรับใช้คำว่า หรคุณ ในบริบทนี้โดยถูกต้องและไม่ผิดเพี้ยน โดยเรียกว่าหรคุณจูเลียน เช่นเดียวกับการปรับคำว่า ดิถี ซึ่งเป็นวันที่ทางจันทรคติเข้ากับปรากฏการณ์ขึ้นและแรมของดวงจันทร์

เชิงอรรถ

[แก้]
  1. Dershowitz & Reingold 2008, 15.
  2. Seidelman 2013, 15.
  3. "Astronomical Almanac Online" 2016, Glossary, s.v. Julian date. Various timescales may be used with Julian date, such as Terrestrial Time (TT) or Universal Time (UT); in precise work the timescale should be specified.
  4. "Resolution B1" 1997.
  5. US Naval Observatory
  6. McCarthy & Guinot 2013, 91–2, 2005
  7. จาก Astronomical Almanac for the year 2017 หน้า B4 ระบุว่าปี พ.ศ. 2567 ตรงกับปี 6737 6730 ของยุคจูเลียน
  8. USDA c. 1963.
  9. L. E. Doggett, Ch. 12, "Calendars", p. 604, in Seidelmann 1992
  10. Meeus, Jean (1998). Astronomical Algorithms. Richmond, VA: Willman Bell. pp. 60–61.
  11. L. E. Doggett, Ch. 12, "Calendars", p. 606, in Seidelmann 1992
  12. Richards 2013, pp. 592, 618.
  13. Richards 2013, 617–9
  14. Richards 1998, 316

บรรณานุกรม

[แก้]