Msg 1 of 3: Đă gửi: 09 May 2008 lúc 10:06pm | Đă lưu IP
|
|
|
Âm lịch là một vấn đề vô cùng quan trọng trong sự nghiên cứu lư số đông phương, đa số các môn bói toán đều dùng âm lịch. Cách tính âm lịch th́ không nhiều người biết, chỉ mua một cuốn lịch vạn niên, hay cuốn tam tông miếu dùng th́ đă đủ. Thời nay, đa số nhà ai cũng có máy vi tinh, có thể tự tính lấy cuốn âm lịch cho bất cứ năm nào. Thí dụ nhiều lúc muốn tính Tử Vi hay lấy Tứ Trụ cho một người tiền nhân nào đó sinh vào thế kỷ thứ 18, hay 19 ǵ đó, xin hỏi đi đâu kiếm được một cuốn âm lịch đủ các tiết khí cho thế kỷ 18 để mà dùng nhỉ. Mà có đi nữa làm sao mà xác định nó đúng đây?
VinhL có nghiên cứu qua cách tính tiết khí, năm tháng âm lịch dùng các hàm số của Thiên Văn tây phương, xin diễn giải ra để mọi người có cơ hội tham khảo mà tự tính lấy âm lịch để dùng.
Theo sự tra cứu và sưu tầm cho biết th́ Âm lịch căn cứ vào sự xoay chuyển của mặt trăng để tính tháng, và Tiết khí để tính năm. Tháng âm lịch bắt đầu váo ngày trăng mới (new moon) và kết thúc vào ngày trước con trăng mới sau (next new moon). Năm âm lịch có 12 hoặc 13 tháng âm lịch, và số tháng âm lịch tuỳ thuộc vào số lần trăng mới giữa hai tiết Đông chí. Âm lịch có 24 tiết khí căn cứ vào sự xoay chuyển của mặt trời di qua 12 cung Hoàng đạo. Mỗi tiết khí là 15 độ của kinh độ mặt trời (solar longitude), theo bản sau đây
Tên Tiết Kinh độ mặt trời (solar longitude) 1 Đông chí (Winter Solstice) .......... 270 độ 2 Tiểu hàn ........................................ 285 3 Đại hàn ......................................... 300 4 Lập xuân ....................................... 315 5 Vủ thuỹ ......................................... 330 6 Kinh chập ...................................... 345 7 Xuân phân (Spring Equinox) ........... 0 8 Thanh minh .................................... 15 9 Cốc vũ ............................................ 30 10 Lập hạ ........................................... 45 11 Tiểu măng ..................................... 60 12 Mang chủng .................................. 75 13 Hạ chí (Summer Solstice) ............ 90 14 Tiểu thử ....................................... 105 15 Đại thử ........................................ 120 16 Lập thu ........................................ 135 17 Sử thử .......................................... 150 18 Bạch lộ ........................................ 165 19 Thu phân (Autumnal Equinox).... 180 20 Hàn lộ .......................................... 195 21 Sương giáng ................................ 210 22 Lập đông ..................................... 225 23 Tiểu tuyết .................................... 240 24 Đại tuyết ...................................... 255
Trăng mới được quy định là thờ gian lúc mặt trời và mặt trăng có cùng một kinh độ (time when the sun and the moon have the same longitude, that is solar longitude = lunar longitude). Khi có được hai thời gian của hai Tiết Đông chí, và thời gian của tất con trăng mới giữa 2 Đông chí, th́ tháng Âm lịch có thể sắp xếp theo 2 luật sau đây 1) Tiết Đông chí lúc nào cũng phải nằm trong tháng 11 của Âm lịch. 2) Trong năm Âm lịch mà có 13 tháng (13 con trăng mới, tín từ Đông chí năm trước đến Đông chí trong năm), th́ tháng nhuận được đặt vào tháng Âm lịch đầu tiên mà không có Trung khí (Trung khí là những tiết Đông chí, Đại hàn, Vủ thũy, Xuân phân, Cốc vũ, Tiểu mảng, Hạ chí, Đại thử, Sử thử, Thu phân, Sương giáng, hay Tiểu tuyết).
Để cho việc tín toán thời gian và các công thức trong thiên văn học được dễ dàng, chúng ta phải biết đến hai hệ thống đếm ngàỵ
1) Hệ thống đếm ngày cố định (Fixed Day Numbers)
Hệ thống này dùng 0 giờ đêm (midnight) thứ hai (Monday), ngày 1, tháng 1, năm 1 Dương lịch (Gregorian) là ngày 1 được kư hiệu là R.D. 1 (R.D. : Rata die or fixed date). R.D. 1 là ngày trù tượng v́ Dương lịch (Gregorian) chỉ được thành lập trong thế kỷ thứ 16. Trong hệ thống này, thời gian được đếm bằng một chuổi ngày theo số nguyên ... -2, -1, 0, 1, 2, ... Ngày trước ngày R.D. 1 là âm. Phần phân số, nếu có, là đại diện cho các giờ, phút trong ngàỵ
2) Hệ thống đếm ngày Julian (Julian Day Numbers)
Hệ thống đếm ngày này được sử dụng trong thiên văn học, nhất là trong những phương tŕnh tính toán liên quan đến thời gian và không gian của các thiên thể.
Hệ thống này dùng ngày móc là trưa (noon) thứ hai (Monday) ngày 1, tháng 1, năm 4713 BC của lịch Julian và củng là trưa thứ hai, ngày 24, tháng 11, năm -4712 Dương lịch.
Hệ thống này dùng phần phân số để đại diện cho giờ, phút trong ngàỵ
Để có thể hoán chuyển thời gian từ một hệ thống này sang hệ thống khác, chúng ta cần định nghĩa một số phép tính toán học như sau:
floor(X) = số nguyên lớn nhất, it hơn hoặc bằng X.
X mod Y = X – Y*Floor (X/Y) : tức là số thừa của X/Y (c̣n gọi là modulus function)
X amod Y = 1 + (X-1) mod Y = X mod Y, ngoại trừ nếu X mod Y = 0 th́ X amod Y = Y
Hoán Chuyển giửa hai hệ thống đếm ngày:
Từ Julian sang Fixed
jd2fx(jd) = jd – 1721424.5
Từ Fixed sang Julian
fx2jd(fx) = fx + 1721424.5
Hoán Chuyển giửa Dương lịch và Fixed Day
Từ Dương lịch (Gregorian) sang Fixed
gr2fx(month,day,year) = 365*(year-1) + floor((year-1)/4) - floor((year-1)/100)
+ floor((year-1)/400) + floor(((365*month)-362)/12)
+ day
+ ((0 nếu month <=2),(-1 nếu month >2 AND grleapyear(year)),(-2 otherwise))
grleapyear(y) = ((y mod 4)=0) AND (y mod 400 not in (100,200,300))
Từ Fixed sang Dương lịch
fx2gr(fx) = month, day, year
year = ((=yyyy if n100 =4 or n1=4),(=yyyy+1 otherwise))
d0 = fx-1
n400 = floor(d0/146097)
d1 = d0 mod 146097
n100 = floor(d1/36524)
d2 = d1 mod 36524
n4 = floor(d2/1461)
d3 = d2 mod 1461
n1 = floor(d3/365)
yyyy=400*n400+100*n100+4*n4+n1
month = floor((12*(priordays+correction)+373)/367)
priordays = fx – gr2fx(1,1,year)
correction = ((=0 if fx < gr2fx(3,1,year)),(=1 if fx >= gr2fx(3,1,year)),(=2 otherwise))
day = fx – gr2fx(month,1,year) + 1
Tất cả những công thức trên đây được trích từ quyển Calendrical Calculations do tác gỉa Nachum Dershowitz và Edward M. Reingold, nhà xuất bản The Press Syndicate of the University of Cambridge ấn loát, 1997.
Một yếu tố rất quan trọng trong các công thức thiên văn là đơn vị thời gian. Trong thiên văn học hiện nay có đến bảy hoặc tám loại thời gian như Civil Time, Universal Time, Solar Time, Sidereal Time, Ephemeris Time, Dynamic Time, Terrestrial Time, and International Atomic Time (TAI). Chúng ta sẽ dùng đến Civil Time (C̣n gọi là Local Time), Universal Time, Ephemeris Time.
Giờ địa phương là local time, khi chúng ta hẹn ai đó đi xi nê vào 7:30 PM th́ đây là local time.
Local time dùng Kinh Tuyến 0 độ tại Greenwich Anh quốc làm chuẩn. Toàn địa cầu được chia ra làm 24 múi giờ (Time Zone) tức là mổi múi giờ bao gồm 360/24 = 15 độ kinh tuyến. Múi giờ tại Greenwich thường gọi là Greenwich mean time (GMT). GMT hiện nay được chỉnh theo Coordinated Universal Time (UTC) mà thời gian là được một mạng lưới giờ nguyên tử (Atome Time) của các đài thiên văn rải rác khắp thế giới kiểm soát. Mặc dầu vậy, đời sống chúng ta gắn liền đến sự xoay chuyển của quả địa cầu (ngày và đêm), mà sự xoay chuyển của quả địa cầu thường có sự thay biến đột ngột, và hiện nay đang chậm lại, v́ vậy giờ địa phương hay UTC sẽ mất nhịp với giờ nguyên tử (TAI). Cho nên UTC được điểu chỉnh lại bằng cách cộng một hai giây (gọi là giây nhuận – leap-second) vào giờ nguyên tử trong một hai năm một lần vào tháng 6 hay tháng 12.
Universal Time (Giờ quốc tế)
Hoán chuyển giửa Local Time và Universal Time
Mỗi múi giờ có 15 kinh độ như vậy mỗi kinh độ khác nhau 4’ (4 phút)
Universal Time sang Local Time
ut2lt(utime, timezone) = utime + (timezone*60)/1440
Nến chúng ta dùng kinh tuyết th́
ut2lt(utime, meridian) = utime + (eastwest * meridian * 4)/1440
eastwest = ((=1 meridian là kinh tuyết đông),(=-1 meridian là kinh tuyết tây))
Local Time sang Universal Time
lc2ut(ltime, timezone) = ltime – (timezone*60)/1440
lc2ut(ltime, meridian) = ltime – (eastwest * meridian * 4)/1440
Ephemeris Time (ET)
Ephemeris Time căn cứ vào sự xoay chuyển của quả địa cầu chung quanh mặt trời, quỷ đạo và lực thủy triều của mặt trăng. Các nhà thiên văn muốn ước lượng chính xác Ephemeris Time đến 1 phần 10^10 th́ họ cần phải quan sát mặt trăng liên tục trong 5 năm. Đa số các công thức thiên văn đều sử dụng Ephemeris Time trong các việc tính toán liên quan đến sự vận hành của các thiên thể. Ephemeris Time được hoán chuyển sang UT qua công thức Ephemeris correction: deltaT = ET – UT. Nếu sự sai biệt vài phút (có thể đến 10 phút) là không thành vấn, th́ chúng ta có thể cho deltaT = 0, tức là ET = UT.
Kinh Độ Thái Dương (Solar Logitude)
Sau đây là công thức để tính kinh độ của mặt trời.
Thời gian T trong thế kỷ Julian từ mốc J2000. (Một thế kỷ Julian có 36525 ngày).
jd: thời gian mà chúng ta muốn t́m kinh độ mặt trời
T = (jd – 2451545)/36525
Các công thức sau đây chúng ta sẻ dùng cách sắp xếp của Horner để giảm đi bớt số lương tính toán và sự gạt bỏ các phân số nhỏ.
Geometric Mean Longitude of the Sun
L0 = 280.4664567 + 36000.76982779*T + 0.0003032028*T^2
= 280.4664567 + T*(36000.76982779 + 0.0003032028*T)
L0 = L0 – floor(L0/360)*360
Sun’s mean anomaly
M = 357.5291092 + 35999.0502909*T – 0.00015366*T^2
= 357.5291092 + T*(35999.0502909 – 0.00015366*T)
M = M – floor(M/360)*360
Nutation and Aberration Correction
O = 125.04452 – 1934.136261*T + 0.0020708*T^2
= 125.04452 – T*(1934.136261 – 0.0020708*T)
O = O – floor(O/360)*360
Sun’s equation of the center
C = (1.914602 – 0.004817*T – 0.000014*T^2)*sin(M)
+ (0.019993 – 0.000101*T)*sin(2*M)
+ 0.000289*sin(3*M)
Solar Longitude
SL = L0 + C – 0.00569 – 0.00478*sin(O)
Công thức tính kinh độ thái dương (solar logitude) được trích từ quyển Astronomical Algorithms 2nd edition do tác giả Jean Meeus, nhà xuất bản Willmann-Bell Inc. ấn loát, 1998.
Bây giờ chúng ta định nghỉa hàm số sal(jd) để tính kinh độ thái dương theo nhưng công thức đă tŕnh bàỵ
sal(jd) = SL
jd là thời gian trong hệ Julian.
Trước khi áp dụng hàm số sal th́ tay phải cần thêm 2 công thức để hoán chuyển thời gian từ dạng dương lịch (Gregorian) sang Julian và ngược lại. Để tiện cho việc lập tŕnh, ta sẻ ghi chú ngày tháng năm, giờ phúc giây như sau: dd.mmyyy (Ngày.ThángNăm), hh.mmss (Giờ.PhúcGiây).
Muốn chuyển thừ month, day, year sang dạng dd.mmyyyy th́ chỉ cần các công thức sau:
dd.mmyyyy = day + month/100 + year/1000000
hoặc
day = int(dd.mmyyyy)
month = int(fraction(dd.mmyyyy)*100)
year = fraction(dd.mmyyyy * 100)*10000
V́ vậy ta sẻ định nghỉa lại 2 công thức hoán chuyển dương lịch sang fixed day để thêm giờ phút giây
gr2fx(dd.mmyyyy, hh.mmss) = 365*(yyyy-1) + floor((yyyy-1)/4) - floor((yyyy-1)/100)
+ floor((yyyy-1)/400) + floor(((365*mm)-362)/12)
+ dd
+ ((hh*3600+mm*60+ss)/86400)
+ ((0 nếu mm <=2),(-1 nếu mm >2 AND grleapyear(yyyy)),(-2 otherwise))
grleapyear(yyyy) = ((yyyy mod 4)=0) AND (yyyy mod 400 not in (100,200,300))
fx2gr(fx) = dd.mmyyyy, hh.mmss
yyyy = ((=yr if n100 =4 or n1=4),(=yr+1 otherwise))
d0 = fx-1
n400 = floor(d0/146097)
d1 = d0 mod 146097
n100 = floor(d1/36524)
d2 = d1 mod 36524
n4 = floor(d2/1461)
d3 = d2 mod 1461
n1 = floor(d3/365)
yr=400*n400+100*n100+4*n4+n1
mm = floor((12*(priordays+correction)+373)/367)
priordays = fx – gr2fx(1.01yyyy)
correction = ((=0 if fx < gr2fx(1.03yyyy)),(=1 if fx >= gr2fx(1.03yyyy)),(=2 otherwise))
dd = fx – gr2fx(1.mmyyyy) + 1
hh = int(fraction(fx)*24)
mm = int(fraction(fraction(fx)*24)*60)
ss = int(fraction(fraction(fraction(fx)*24)*60)*60)
Ta c̣n có những công thức đă định nghĩa trước là
jd2fx(jd) = jd – 1721424.5
fx2jd(fx) = fx + 1721424.5
ut2lt(utime, timezone) = utime + (timezone*60)/1440
lt2ut(ltime, timezone) = ltime – (timezone*60)/1440
Hoán Chuyển Dương Lịch và Julian Day
gr2jd(dd.mmyyyy,hh.mmss, timezone) = lc2ut(fx2jd(gr2fx(dd.mmyyyy,hh.mmss)),timezone)
và
jd2gr(jd,timezone) = fx2gr(ut2lc(jd2fx(jd),timezone))
Như vậy th́ ta có thể tính kinh độ thái dương cho bất cứ thời điểm, và địa phương nào, như sau:
sal(gr2jd(dd.mmyyyy,hh.mmss,timezone))
Tính Tiết Khí
Để có thể tính được gần chính xác (sai khoảng 10 phút trở lại) tiết khí xảy ra ngay thời điểm nào, ta cần một số công thức sau:
Biến đổi tiết khí sang kinh độ thái dương như sau:
ti2sl(ti) = 1 + (((ti + 16) mod 24 + 1) * 15 – 1) mod 360
ti = 1 là Đông Chí th́ ti2sl(ti) sẻ cho 270
ti = 23 là Tiểu Tuyết th́ ti2sl(ti) sẻ cho 240
Điều chỉnh (correct) kinh độ thái dương
slcor(jd,sl0,sl1) = jd + 58 * sin(sl0 – sl1)
jd = thời điểm trong hệ Julian
sl0 = là kinh độ của tiết khí muốn tính
sl1 = là kinh độ tính được theo công thức sal
Như vậy ta có thể tính thời điểm của tiết khí như sau:
tiet(dd.mmyyyy,hh.mmss,timezone,tiet) = dd.mmyyyy,hh.mmss
sl0 = ti2sl(tiet),
jd = gr2jd(dd.mmyyyy,hh.mmss,timezone)
sl1 = 0
while abs(sl0 – sl1) >= 0.00001
{
sl1 = sal(jd)
jd= slcor(jd,sl0,sl1)
}
dd.mmyyyy,hh.mmss = jd2gr(jd,timezone)
Theo như công thức trên ta có thể tính thời điểm của tiết Đông chí năm 2006, tiet(1.012006,0,8,1) th́ ta có 22.122005, 2.3356, tức là tiết Đông chí gần ngày 1 tháng 1 năm 2006 Dương lịch nhất là đến vào ngày 22 tháng 12 năm 2005, 2 giờ 33 phút 56 giây.
Tiết Đông chí tới tiet(1.012007,0,8,1) là 22.122006, 8.2113 tức là ngày 22 tháng 12 năm 2006 dương lịch, vào 8 giờ 21 phút 13 giâỵ
Phương Pháp Tính Thời Điểm Trăng Mới
Chúng ta muốn tính thời điểm của con trăng gần nhất cho ngày dd.mmyyyy, hh.mmss, và múi giờ timezone. Đầu tiên ta phải chuyển ngày tháng giờ dương lịch qua hệ thống Julian.
1) T́m k, k là một số nguyên đại diện con trăng mới lần thứ mấy sau ngày 6 tháng 1, 2000,
k = 0 là trăng mới của ngày 6 tháng 1, 2000 dương lịch
g2k(dd.mmyyyy,hh.mmss,timezone)
a) jd0 = g2jd(dd.mmyyyy, hh.mmss, timezone)
b) date = fx2g(floor(jd0-1721424.5))
c) fx2g sẻ cho ta ngày tháng năm giờ date_dd.mmyyyy, date_hh.mmss
ta gọi ngày cuối năm trước là 31.12yyyy-1
daynumber = g2fx(date_dd.mmyyyy,date_hh.mmss)
– g2fx(31.12yyyy-1,date_hh.mmss)
g2k = floor(date_yyyy + (daynumber/365.25)-2000)
5) thời điểm của trăng mới, k2newmoon(k,timezone)
T = (k/1236.85)
a) Eccentricity of Earth’s orbit around the sun E
E = 1 – T*(0.002516 – 0.0000074*T)
b) Sun’s mean anomaly
M = 2.5534 + T*(35998.9604344 – T*(0.0000014 – 0.00000011*T))
M = M – 360 * floor(M/360)
c) Moon’s mean anomaly
Mp = 201.5643 + T*(477197.676401
+ T*(0.0107582
+ T*(0.00001238-0.000000058*T)))
Mp = Mp – 360 * floor(Mp/360)
d) Moon’s argument of latitude
F = 160.7108 + T*(483200.811438
- T*(0.0016118
- T*(0.00000227 + 0.000000011*T)))
F = F – 360 * flooe(F/360)
e) Periodic terms
Periodic = -0.40720 * sin(Mp) + 0.17241*E*sin(M)
+ 0.01608*sin(2*Mp) + 0.01039*sin(2*F)
+ 0.00739*sin(Mp-M) - 0.00514*E*sin(Mp+M)
+ 0.00208*E*E*sin(2*M) - 0.00111*sin(Mp-2*F)
- 0.00057*sin(Mp+2*F) + 0.00056*E*sin(2*Mp+M)
- 0.00042*sin(3*Mp) + 0.00042*E*sin(M+2*F)
+ 0.00038*E*sin(M-2*F) - 0.00024*E*sin(2*Mp-M)
f) NMTime = 2451550.09766 + T*(36524.9088327
+ T*(0.00015437
- T*(0.000000150 + 0.00000000073*T)))
+ Periodic
g) k2newmoon(k,timezone) = jd2g(NMTime,timezone)
Ta cần một công thức để tính số ngày giửa hai ngày dương lịch,
ddiff(dd.mmyyyy1,dd.mmyyyy2) = g2fx(dd.mmyyyy2,0) – g2fx(dd.mmyyyy1)
Chúng ta sẻ tính tất cả trung khí và các con trăng mới cho năm 2001
Ta sẻ dùng ngày 1.012001, 0.0000, và múi giờ 8 (như âm lịch của tàu) để t́m ngày đông chí, ta dùng công thức tiet(dd.mmyyyy,hh.mmss,timezone,tiet).
Đông Chí (270 độ), tiet = 1 : tiet(1.012001,0,8,1) -> 21.122000,21.3135
Đại Hàn (300 độ), tiet = 3 : tiet(1.012001,0,8.3) -> 20.012001,8.1104
Vũ Thũy (330 độ), tiet = 5 : tiet(1.012001,0,8,5) ->18.022001,22.2042
Xuân Phân (0 độ), tiet = 7 : tiet(1.012001,0,8,7) ->20.032001,21.2137
Cốc Vũ (30 độ), tiet = 9 : tiet(1.012001,0,8,9) ->20.042001,8.2503
Tiểu Mảng (60 độ), tiet = 11 : tiet(1.012001,0,8,11) ->21.052001,7.3437
Hạ Chí (90 độ), tiet = 13 : tiet(1.012001,0,8,13) ->21.062001,15.3231
Đại Thử (120 độ), tiet = 15 : tiet(1.012001,0,8,15) ->23.072001,2.2612
Sử Thử (150 độ), tiet = 17 : tiet(1.012001,0,8,17) ->23.082001,9.3008
Thu Phân (180 độ), tiet = 19 : tiet(1.012001,0,8,19) ->23.092001,7.0755
Sương Giáng (210 độ), tiet = 21 : tiet(1.012001,0,8,21) ->23.102001,16.2755
Tiểu Tuyết (240 độ), tiet = 23 : tiet(1.012001,0,8,23) ->22.112001,14.0122
Đông Chí (270 độ), tiet = 1 : tiet(1.012002,0,8,1) ->22.122001,3.2123
Tính trăng mới
Ta sẻ dùng ngày 1.012001, 0.0000, và múi giờ 8 để t́m k đầu tiên cho năm 2001
g2k(1.012001,0,8) = 12
và dùng k2newmoon(k,timezone) để t́m thời điểm của con trăng mới
k = 12, k2newmoon(12,8) -> 26.122000,1.2404
k = 13, k2newmoon(13,8) -> 24.012001,21.0851
k = 14, k2newmoon(14,8) ->23.022001,16.2319
k = 15, k2newmoon(15,8) ->25.032001,9.2347
k = 16, k2newmoon(16,8) ->23.042001,23.2811
k = 17, k2newmoon(17,8) ->23.052001,10.4814
k = 18, k2newmoon(18,8) ->21.062001,19.5952
k = 19, k2newmoon(19,8) ->21.072001,3.4620
k = 20, k2newmoon(20,8) ->19.082001,10.5701
k = 21, k2newmoon(21,8) ->17.092001,18.2901
k = 22, k2newmoon(22,8) ->17.102001,3.2452
k = 23, k2newmoon(23,8) ->15.112001,14.4144
k = 24, k2newmoon(24,8) ->15.122001,4.4933
k = 25, k2newmoon(25,8) ->13.012002,21.3050
Chúng ta đả có tất cả điểm mốc để sắp xếp âm lịch cho năm 2001.
Ta nhập 2 bảng thời điểm tiết khí và thời điểm trăng mới vào nhau theo thứ tự thời gian
Đông Chí, tiet = 1 -> 21.122000,21.3135
k = 12, -> 26.122000,1.2404 <- 1 tháng Chạp, 29 ngày
Đại Hàn, tiet = 3 -> 20.012001,8.1104
k = 13, -> 24.012001,21.0851 <- 1 tháng Giêng, 30 ngày
Vũ Thũy, tiet = 5 ->18.022001,22.2042
k = 14, ->23.022001,16.2319 <- 1 tháng Hai, 30 ngày
Xuân Phân, tiet = 7 ->20.032001,21.2137
k = 15, ->25.032001,9.2347 <- 1 tháng Ba, 29 ngày
Cốc Vũ, tiet = 9 ->20.042001,8.2503
k = 16, ->23.042001,23.2811 <- 1 tháng Tư, 30 ngày
Tiểu Mảng, tiet = 11 ->21.052001,7.3437
k = 17, ->23.052001,10.4814 <- 1 tháng Tư Nhuận, 29 ngày
k = 18, ->21.062001,19.5952 <- 1 tháng Năm, 30 ngày
Hạ Chí, tiet = 13 ->21.062001,15.3231
k = 19, ->21.072001,3.4620 <- 1 tháng Sáu, 29 ngày
Đại Thử, tiet = 15 ->23.072001,2.2612
k = 20, ->19.082001,10.5701 <- 1 tháng Bảy, 29 ngày
Sử Thử, tiet = 17 ->23.082001,9.3008
k = 21, ->17.092001,18.2901 <- 1 tháng Tám, 30 ngày
Thu Phân, tiet = 19 ->23.092001,7.0755
k = 22, ->17.102001,3.2452 <- 1 tháng Chín, 29 ngày
Sương Giáng, tiet = 21 ->23.102001,16.2755
k = 23, ->15.112001,14.4144 <- 1 tháng Mười, 30 ngày
Tiểu Tuyết, tiet = 23 ->22.112001,14.0122
k = 24, ->15.122001,4.4933 <- 1 tháng Mười Một, 29 ngày
Đông Chí, tiet = 1 ->22.122001,3.2123
k = 25, ->13.012002,21.3050 <- Mùng 1 tháng Chạp
Theo quy luật của lịch âm lịch, tiết Đông Chí phải nằm trong tháng 11 (tư) , vậy ngày mùng 1 tháng 12 âm lịch sẻ là ngày 26.122000,1.2404 dương lịch. Tất cả thời điểm của con trăng mới đều là mùng 1.
Chúng ta thấy tiết Hạ Chí đến vào 21.062001, 15.3231 và tháng k=18 đến vào 21.062001,19.5952, theo thời gian th́ tiết Hạ Chí đến trước, nhưng nó vẩn nằm trong ngày 21.062006 này, cho nên tháng trước đó không có trung khí, và là tháng nhuận, tức là từ tháng k=17 đến đầu k=18 không có trung khí, cho nên tháng k=17 là nhuận, mà tháng trước nó là tháng tư, nên nó là tháng tư nhuận.
Sau đó ta dùng ddiff() của 2 ngày Mùng 1 để biết tháng đó có 29, hay 30 ngày.
Lịch Bính Tuất 2006
Chúng ta sẻ tính tất cả trung khí và các con trăng mới cho năm Bính Tuất 2006
Ta sẻ dùng ngày 1.012006, 0.0000, và múi giờ 8 để t́m ngày đông chí và các trung khí.
Đông Chí (270 độ), tiet = 1 : tiet(1.012006,0,8,1)------> 22.122005,02.3356
Đại Hàn (300 độ), tiet = 3 : tiet(1.012006,0,8.3)-------> 20.012006,13.1318
Vũ Thũy (330 độ), tiet = 5 : tiet(1.012006,0,8,5)------->19.022006,03.2142
Xuân Phân (0 độ), tiet = 7 : tiet(1.012006,0,8,7)-------->21.032006,02.2030
Cốc Vũ (30 độ), tiet = 9 : tiet(1.012006,0,8,9)---------->20.042006,13.2126
Tiểu Mảng (60 độ), tiet = 11 : tiet(1.012006,0,8,11)--->21.052006,12.2841
Hạ Chí (90 độ), tiet = 13 : tiet(1.012006,0,8,13)-------->21.062006,20.2502
Đại Thử (120 độ), tiet = 15 : tiet(1.012006,0,8,15)----->23.072006,07.1823
Sử Thử (150 độ), tiet = 17 : tiet(1.012006,0,8,17)------>23.082006,14.2313
Thu Phân (180 độ), tiet = 19 : tiet(1.012006,0,8,19)---->23.092006,12.0247
Sương Giáng (210 độ), tiet = 21 : tiet(1.012006,0,8,21)->23.102006,21.2454
Tiểu Tuyết (240 độ), tiet = 23 : tiet(1.012006,0,8,23)---->22.112006,19.0010
Đông Chí (270 độ), tiet = 1 : tiet(1.012007,0,8,1)-------->22.122006,08.2113
Ta sẻ dùng ngày 1.012006, 0.0000, và múi giờ 8 để t́m k đầu tiên cho năm 2006
g2k(1.012006,0,8) = 74
và dùng k2newmoon(k,timezone) để t́m thời điểm của con trăng mới
k = 74, k2newmoon(74,8) ->31.122005,11.1258
k = 75, k2newmoon(75,8) ->29.012006,22.1604
k = 76, k2newmoon(76,8) ->28.022006,08.3230
k = 77, k2newmoon(77,8) ->29.032006,18.1653
k = 78, k2newmoon(78,8) ->28.042006,03.4517
k = 79, k2newmoon(79,8) ->27.052006,13.2700
k = 80, k2newmoon(80,8) ->26.062006,00.0642
k = 81, k2newmoon(81,8) ->25.072006,12.3218
k = 82, k2newmoon(82,8) ->24.082006,03.1112
k = 83, k2newmoon(83,8) ->22.092006,19.4634
k = 84, k2newmoon(84,8) ->22.102006,13.1539
k = 85, k2newmoon(85,8) ->21.112006,06.1941
k = 86, k2newmoon(86,8) ->20.122006,22.0221
k = 87, k2newmoon(87,8) ->19.012007,12.0204
Ta nhập 2 bảng thời điểm tiết khí và thời điểm trăng mới vào nhau theo thứ tự thời gian
Đông Chí, tiet = 1 -> 22.122005,02.3356
k = 74, ->31.122005,11.1258<- 1 tháng Chạp, 29 ngày
Đại Hàn, tiet = 3 -> 20.012006,13.1318
k = 75, -> 29.012006,22.1604<- 1 tháng Giêng, 30 ngày
Vũ Thũy, tiet = 5 ->19.022006,03.2142
k = 76, ->28.022006,08.3230<- 1 tháng Hai, 29 ngày
Xuân Phân, tiet = 7 ->21.032006,02.2030
k = 77, ->29.032006,18.1653<- 1 tháng Ba, 30 ngày
Cốc Vũ, tiet = 9 ->20.042006,13.2126
k = 78, ->28.042006,03.4517<- 1 tháng Tư, 29 ngày
Tiểu Mảng, tiet = 11 ->21.052006,12.2841
k = 79, ->27.052006,13.2700<- 1 tháng Năm, 30 ngày
Hạ Chí, tiet = 13 ->21.062006,20.2503
k = 80, ->26.062006,00.0642<- 1 tháng Sáu, 29 ngày
Đại Thử, tiet = 15 ->23.072006,07.1823
k = 81, ->25.072006,12.3218<- 1 tháng Bảy, 30 ngày
Sử Thử, tiet = 17 ->23.082006,14.2313
k = 82, ->24.082006,03.1112<- 1 tháng Bảy Nhuận, 29 ngày
k = 83, ->22.092006,19.4634<- 1 tháng Tám, 30 ngày
Thu Phân, tiet = 19 ->23.092006,12.0247
k = 84, ->22.102006,13.1539<- 1 tháng Chín, 30 ngày
Sương Giáng, tiet = 21 ->23.102006,21.2454
k = 85, ->21.112006,6.1941<- 1 tháng Mười, 29 ngày
Tiểu Tuyết, tiet = 23 ->22.112006,19.0010
k = 86, ->20.122006,22.0221<- 1 tháng Mười Một, 30 ngày
Đông Chí, tiet = 1 ->22.122006,8.2113
k = 87, ->19.012007,12.0204<- Mùng 1 tháng Chạp
Chúng ta thấy tháng k=82 không có trung khí, cho nên nó sẻ là tháng nhuận, tháng trước nó là tháng Bảy, nên nó sẻ là tháng Bảy Nhuận vậy.
Nay chúng ta đă tính các móc âm lịch cho năm Bính Tuất, sẳn đây ta có thể phân tích sực khác biệt giửa lịch vạn niên và lịch Bloc cho năm Bính Tuất nhé.
Lịch vạn niên dùng múi giờ là 8 để tính (trung quốc là múi giờ 8) và lịch Bloc dùng múi giờ 7. Ta hảy tính các móc tiết và trăng mới cho tháng 4,5,6,7,8,9 dùng múi giờ 7 và 8 nhé.
Múi giờ 7
k = 78, ->28.042006,02.4517<- 1 tháng Tư, 29 ngày
Tiểu Mảng, tiet = 11->21.052006,11.2841
k = 79, ->27.052006,12.2700<- 1 tháng Năm, 29 ngày
Hạ Chí, tiet = 13->21.062006,19.2502
k = 80, ->25.062006,23.0642<- 1 tháng Sáu, 30 ngày
Đại Thử, tiet = 15->23.072006,06.1823
k = 81, ->25.072006,11.3218<- 1 tháng Bảy, 30 ngày
Sử Thử, tiet = 17->23.082006,13.2313
k = 82, ->24.082006,02.1112<- 1 tháng Bảy Nhuận, 29 ngày
k = 83, ->22.092006,18.4634<- 1 tháng Tám, 30 ngày
Thu Phân, tiet = 19->23.092006,11.0247
Múi giờ 8
k = 78, ->28.042006,03.4517<- 1 tháng Tư, 29 ngày
Tiểu Mảng, tiet = 11->21.052006,12.2841
k = 79, ->27.052006,13.2700<- 1 tháng Năm, 30 ngày
Hạ Chí, tiet = 13->21.062006,20.2503
k = 80, ->26.062006,00.0642<- 1 tháng Sáu, 29 ngày
Đại Thử, tiet = 15->23.072006,07.1823
k = 81, ->25.072006,12.3218<- 1 tháng Bảy, 30 ngày
Sử Thử, tiet = 17->23.082006,14.2313
k = 82, ->24.082006,03.1112<- 1 tháng Bảy Nhuận, 29 ngày
k = 83, ->22.092006,19.4634<- 1 tháng Tám, 30 ngày
Thu Phân, tiet = 19->23.092006,12.0247
Ta thấy sự khác biệt giửa hai lịch là múi giờ, Bloc dùng múi giờ 7, nên các móc đến sau lịch vạn niên 1 giờ. Nguyên do chính là mùng 1 tháng k=80. Theo múi giờ 8 th́ nó đả bước sang ngày mới rồi, tức là ngày 26.062006 dương lịch và con trăng mớ xảy ra lúc 00.0642 (không giờ 6 phút 42 giây). Nhưng theo lịch Bloc múi giờ 7 th́ nó đến vào ngày 25.062006 dương lịch và trăng mới xảy ra vào 23.0642 (11 giờ 6 phút 42 giây PM) tức vẩn c̣n ở trong ngày 25.062006, thay v́ ngày 26.062006 theo múi giờ 8 của lịch vạn niên. V́ lư do này, mà lịch Bloc chỉ có 29 ngày trong tháng năm và 30 ngày trong tháng sáu âm lịch. C̣n lịch vạn niên th́ có 30 ngày trong tháng năm và 29 ngày trong tháng sáu vậy.
vạn niên lịch
k=79: mùng 1 tháng 5, 27.052006 DL ----> k=80: mùng 1 tháng 6, 26.062006 = 30 ngày
k=80: mùng 1 tháng 6, 26.062006 DL ----> k=81: mùng 1 tháng 7, 25.072006 = 29 ngày
lịch Bloc
k=79: mùng 1 tháng 5, 27.052006 DL ----> k=80: mùng 1 tháng 6, 25.062007 = 29 ngày
k=80: mùng 1 tháng 6, 25.062007 DL ----> k=81: mùng 1 tháng 7, 25.072006 = 30 ngày
V́ lư do vừa bàn thảo trên mà có sự khác biệt đấy.
Làm thế nào tránh khỏi t́nh trạng này? Chỉ có cách là lập ra một múi giờ mốc để tính toán lịch. Ta có thể dùng múi giờ 8 làm mốc tính lịch. C̣n các thời điểm như trăng mới, trăng tṛn, thời điểm tiết khí th́ ta chỉ cần giảm đi mấy giờ theo sự khác biệt của múi giờ, trong trường hợp này th́ là giảm đi 1 giờ vậy.
V́ âm lịch dựa vào thời điểm tiết khí và trăng mới, mà các móc này theo giờ địa phương, mổi nơi mổi khác (theo múi giờ), cho nên, mổi quốc gia trên thới giới sẻ có một cuốn âm lịch riêng vậy. Dương lịch th́ có mốc Greenwich làm chuẩn, c̣n âm lịch th́ không, cho nên có các sự khác biệt vậy.
Muốn thống nhứt tất cả cuốn âm lịch th́ ta phải lập ra múi giờ mốc để tính cuốn âm lịch mốc. Các địa phương khác đều dùng chung cuốn lịch mốc, chỉ chỉnh lại giờ theo sự khác biệt giửa múi giờ.
|