Đăng nhập nhanh
Mạnh Thường Quân
  Bảo Trợ
Chức Năng
  Diễn Đàn
  Thông tin mới
  Đang thảo luận
  Hội viên
  Tìm Kiếm
  Tham gia
  Đăng nhập
Diễn Đàn
Nhờ Xem Số
  Coi Tử Vi
  Coi Tử Bình
  Coi Địa Lý
  Coi Bói Dich
  Chọn Ngày Tốt
Nghiên Cứu và
Thảo Luận

  Mệnh Lý Tổng Quát
  Qủy Cốc Toán Mệnh
  Tử Vi
  Tử Bình
  Bói Dịch
  Mai Hoa Dịch Số
  Bát Tự Hà Lạc
  Địa Lý Phong Thủy
  Nhân Tướng Học
  Thái Ất - Độn Giáp
  Khoa Học Huyền Bí
  Văn Hiến Lạc Việt
  Lý - Số - Dịch - Bốc
  Y Học Thường Thức
Lớp Học
  Ghi Danh Học
  Lớp Dịch & Phong Thuy 2
  Lớp Địa Lư
  Lớp Tử Vi
    Bài Giảng
    Thầy Trò Vấn Đáp
    Phòng Bàn Luận
    Vở Học Trò
Kỹ Thuật
  Góp Ý Về Diễn Đàn
  Hỗ Trợ Kỹ Thuật
  Vi Tính / Tin Học
Thư Viện
  Bài Viết Chọn Lọc
  Tủ Sách
Thông Tin
  Thông Báo
  Hình Ảnh Từ Thiện
  Báo Tin
  Bài Không Hợp Lệ
Khu Giải Trí
  Gặp Gỡ - Giao Lưu
  Giải Trí
  Tản Mạn...
  Linh Tinh
Trình
  Quỷ Cốc Toán Mệnh
  Căn Duyên Tiền Định
  Tử Vi
  Tử Bình
  Đổi Lịch
Nhập Chữ Việt
 Hướng dẫn sử dụng

 Kiểu 
 Cở    
Links
  VietShare.com
  Thư Viện Toàn Cầu
  Lịch Âm Dương
  Lý Số Việt Nam
  Tin Việt Online
Online
 442 khách và 0 hội viên:

Họ đang làm gì?
  Lịch
Tích cực nhất
dinhvantan (6262)
chindonco (5248)
vothienkhong (4986)
QuangDuc (3946)
ThienSu (3762)
VDTT (2675)
zer0 (2560)
hiendde (2516)
thienkhoitimvui (2445)
cutu1 (2295)
Hội viên mới
thephuong07 (0)
talkativewolf (0)
michiru (0)
dieuhoa (0)
huongoc (0)
k10_minhhue (0)
trecon (0)
HongAlex (0)
clone (0)
lonin (0)
Thống Kê
Trang đã được xem

lượt kể từ ngày 05/18/2010
Thái Ất - Đại Lục Nhâm - Kỳ Môn Độn Giáp (Diễn đàn bị khoá Diễn đàn bị khoá)
 TUVILYSO.net : Thái Ất - Đại Lục Nhâm - Kỳ Môn Độn Giáp
Tựa đề Chủ đề: Phương Pháp Tự Làm Âm Lịch Gửi trả lời  Gửi bài mới 
Tác giả
Bài viết << Chủ đề trước | Chủ đề kế tiếp >>
VinhL
Hội viên
 Hội viên


Đă tham gia: 28 March 2008
Nơi cư ngụ: Canada
Hiện giờ: Offline
Bài gửi: 78
Msg 1 of 3: Đă gửi: 09 May 2008 lúc 10:06pm | Đă lưu IP Trích dẫn VinhL

Â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)

            

             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ờ.

 

Quay trở về đầu Xem VinhL's Thông tin sơ lược T́m các bài viết đă gửi bởi VinhL
 
laido
Hội viên
 Hội viên


Đă tham gia: 17 May 2004
Nơi cư ngụ: United States
Hiện giờ: Offline
Bài gửi: 405
Msg 2 of 3: Đă gửi: 09 May 2008 lúc 11:16pm | Đă lưu IP Trích dẫn laido

Cảm ơn bạn Vinhl.
Phần này quả là hay! Tuy nhiên người chưa nghiên cứu về mấy cái món lập tŕnh kiểu này và chưa nc thiên văn th́ hơi khó lập.

Bạn đă lập dữ liệu, tŕnh tính ngày tháng âm dương lịch = exel theo cách trên chưa, nếu có có thể cho ḿnh 1 bản đc không? KHi lập tŕnh tính KMĐG và 1 và môn khác Laido đang bí về cái lịch này.

Xin cảm ơn bạn nhiều nhiều, chúc bạn tinh tấn trong nghiên cứu học thuật.

Thân
Laido

Sửa lại bởi laido : 09 May 2008 lúc 11:18pm


__________________
...........................
Nửa chữ cũng là Thầy
Quay trở về đầu Xem laido's Thông tin sơ lược T́m các bài viết đă gửi bởi laido
 
huygen
Quản trị
Quản trị
Biểu tượng

Đă tham gia: 31 January 2005
Nơi cư ngụ: Vietnam
Hiện giờ: Offline
Bài gửi: 262
Msg 3 of 3: Đă gửi: 10 May 2008 lúc 1:07am | Đă lưu IP Trích dẫn huygen

cảm ơn bạn VinhL đă chia sẻ phương pháp tính lịch rất dễ hiểu.
Trước đây huygen đọc tài liệu của anh Đức

http://www.informatik.uni-leipzig.de/~duc/amlich/

viết dùng để gắn vào chương tŕnh của ḿnh nhưng không hiểu hết được ư nghĩa của các hằng số được sử dụng.

v́ không có 2 quyển sách Astronomical Algorithms và Calendrical Calculations.

như phần tính Solar Logitude, bạn VinhL giải thích rất rơ. ...




__________________
1-Số điện thoại, số xe có hợp không?
2-Mai Hoa Dịch Số
Quay trở về đầu Xem huygen's Thông tin sơ lược T́m các bài viết đă gửi bởi huygen lần thăm huygen's Homepage
 

Xin lỗi, bạn không thể gửi bài trả lời.
Diễn đàn đă bị khoá bởi quản trị viên.

  Gửi trả lời Gửi bài mới
Bản để in Bản để in

Chuyển diễn đàn
Bạn không thể gửi bài mới
Bạn không thể trả lời cho các chủ đề
Bạn không thể xóa bài viết
Bạn không thể sửa chữa bài viết
Bạn không thể tạo các cuộc thăm ḍ ư kiến
Bạn không thể bỏ phiếu cho các cuộc thăm ḍ



Trang này đă được tạo ra trong 3.3818 giây.
Google
 
Web tuvilyso.com



DIỄN ĐÀN NÀY ĐĂ ĐÓNG CỬA, TẤT CẢ HỘI VIÊN SINH HOẠT TẠI TUVILYSO.ORG



Bản quyền © 2002-2010 của Tử Vi Lý Số

Copyright © 2002-2010 TUVILYSO