Diễn Đàn » Hướng Dẫn Lập trình

Chuyển đổi âm-dương lịch?

13 trả lời, 4.094 lượt xem — Trang 1 / 1
Chào các bạn
mục này có vẻ ít bài quá ta.
Mình đang viết chương trình lập kế hoạch và nhắc việc trong năm. Do trong chương trình của mình có phần nhắc việc nên cần phải có âm lịch. Hiện giờ mình đang cần đoạn code chuyển đổi từ dương lịch sang âm lịch. Bạn nào có thì chỉ dẫn giúp mình nhé. Cảm ơn nhiều
26061905
Đừng để nỗi buồn hôm nay
Là nguyên nhân nỗi buồn ngày mai
Đăng nhập để trả lời
0
Dương lịch là lịch dựa trên vị trí của trái đất đối với mặt trời, còn âm lịch thì dựa trên vị trí của mặt trăng đối với trái đất.
Nếu như chỉ đơn giản ngày trăng tròn là ngày 15 của tháng âm lịch thì họa may còn có cách tính từ dương lịch ra âm lịch (chỉ cần chọn 1 ngày mình biết để làm chuẩn, rồi theo đó tính ra). Vấn đề là trong âm lịch lại có thêm những chỉnh sửa để đi đến trung bình 1 năm của âm lịch = 1 năm của dương lịch (, có tháng 29 ngày, tháng 30 ngày, lâu lâu cộng thêm 1 tháng nhuần...), cho nên theo KDG thì âm lịch và dương lịch không có quan hệ gì với nhau, cũng nghĩa là không có cách để tính từ dương lịch ra âm lịch hay ngược lại.
[:)]
Đăng nhập để trả lời
0
theo lý thuyết của bạn thì đúng.
Nhưng mình đã từng dùng các phần mềm có sử dụng đến việc chuyển đổi từ dương lịch sang âm lịch nên theo mình thì phải có cách chuyển đổi.
Các bạn cố gắng tìm, chắc sẽ ra đấy
26061905
Đừng để nỗi buồn hôm nay
Là nguyên nhân nỗi buồn ngày mai
Đăng nhập để trả lời
0
<Bài viết đã được chỉnh sửa lúc 2005-09-15 11:08:17Trương Củng>
Ðúng là tính ra được hết đấy VNX và HDK ơi. Bản để tính kèm theo đây TC cóp được ở Hanosoft.com mấy năm trước. Website này bây giờ thay đổi, tài liệu này bây giờ không tìm thấy ở đó nữa. May là còn lưu trong máy của TC.
Phương pháp rất cổ lổ, dành cho mấy nhà sử học, và mấy ông thầy bói[:D]. Hy vọng VNX có thể dựa theo để chuyển qua lập trình được.
Theo bản này chuyển từ Tây lịch sang Âm lịch rất dễ, không cần biết niên biểu sử. Ngược lại từ Âm lịch sang tây lịch thì khó, cần phải biết niên biểu sử TQ hay VN. Nếu cần bản niên biểu này TC sẽ đăng lên sau.
📎 AmlichTaylich
Đăng nhập để trả lời
0
Chào TC,

Cái bản chuyển âm lịch &lt;-&gt; tây lịch của TC chỉ đổi được năm thôi, đâu có chuyển ngày được ! [:)]
Trong âm lịch các năm được đặt tên theo 12 con giáp, kết hợp với 10 "can", tạo thành những chu kỳ 60 năm thôi, viết 1 chương trình để chuyển tây lịch sang âm lịch thì rất dể. Mình cứ chọn trường hợp sau Công nguyên hén :
- muốn biết can của 1 năm X, chỉ cần xem con số chót C của năm như trên bản của TC đưa ra
C = 0 -&gt; canh
C = 1 - tân
C = 2 - nhâm
...
- muốn biết chi (con giáp) cứ lấy G = (X mod 12) = số dư khi chia cho 12
Biết là 2005 là năm dậu, (2005 mod 12) = 1, vậy xem theo G
G = 0 -&gt; thân
G = 1 -&gt; dậu
G = 2 -&gt; tuất
G = 3 -&gt; hợi
G = 4 -&gt; tý
...
G = 11 -&gt; mùi

Vì chu kỳ trong âm lịch chỉ có 60 năm, nên đổi từ âm lịch sang dương lịch thì coi bộ khó, thí dụ như là 1885, 1945 và 2005 đều là Ất Dậu, nếu chỉ nói năm Ất Dậu, làm sao biết được là năm nào tây lịch...

Cám ơn TC nhiều, các bản này cũng rất hửu dụng á ! [:)]
Đăng nhập để trả lời
0
hic hic
Ắc độc quá, mình xin code mà, bạn lại cho như vậy làm mình đọc mờ hết cả mắt.
Rất cảm ơn bạn.
Mình cần chuyển đổi cả ngày nữa cơ.
Hì hì,
Đúng như KDG nói đó, nếu chỉ biết tên năm âm lịch thì khó xác định được chính xác năm dương lịch, nhưng ta phân theo khoảng cách cứ 60 năm thì lặp lại một lần để có thể đoán được năm đó là năm nào (Cách đoán này đặc biệt chính xác với việc xem tuổi). Chăc KDG lâu rồi ko ở VN nên ko rành cách này. Hehe, mình và ông Nguyễn Trãi sinh cách nhau 600 năm đấy.
26061905
Đừng để nỗi buồn hôm nay
Là nguyên nhân nỗi buồn ngày mai
Đăng nhập để trả lời
0
Ờ, KDG không phải thầy bối, & chắc cũng không cần nhìn thấy mặt VNX cũng đoán được VNX thuộc hàng 20 hay 80 đó muh, nhưng nếu KDG nói tác giả XXX nọ sanh năm giáp tý, VNX có đoán được ổng sanh năm mấy dương lịch ko vậy? [8D]

VNX hay ai đó biết về quy luật của âm lịch không? Giải thích cho KDG biết đi, để KDG thử tìm coi có quan hệ giữa lịch tây & ta không... [:)]
Đăng nhập để trả lời
0
<Bài viết đã được chỉnh sửa lúc 2005-09-16 10:24:01Trương Củng>
Lịch ta hay âm lịch tuy là theo tuần trăng nhưng trong đó có sự tính toán để lịch ta luôn theo được sự vận hành của thời tiết tác động bởi mặt trời, người tây phương xếp loại lịch ta là Lunisolar Calendar. Ðể ý trong một tờ âm lịch ta sẽ thấy có phần gọi là tiết. Một năm tổng cộng có 24 tiết bắt đầu từ Lập Xuân và chấm dứt là Ðại Hàn, trong đó những ngày quan trọng là các Chí và Phân: Xuân Phân, Thu Phân, Hạ Chí, Ðông Chí luôn khớp với Lich tây, sai biệt thường không quá một ngày. Ðó là điểm dễ thấy nhất, chứng tỏ sự Lịch ta có yếu tố vận hành của mặt trời trong đó.
Ðiểm thứ hai là số tháng nhuần, cứ 19 năm lúc nào lịch ta cũng có 7 tháng nhuần, tuần hoàn. Số Tháng nhuần này là để vòng tuần hoàn của trăng đuổi kịp với mặt trời.
Từ xa xưa trong Kinh Thư người ta đã biết một năm thời tiết thuộc mặt trời, khác với năm theo tuần trăng nên phải đặt tháng nhuận, trích đoạn sau từ Kinh THư:
"Rồi sai hai em họ Hi và hai em họ Hoà đi ra ở bốn phương để nhìn bốn sao đặc biệt vượt kinh tuyến khi mặt trời lặn; mục đích là định ngày giữa bốn mùa. Lời dặn: "Khi ngày dài trung bình, mà sao là Ðiểu thì là giữa xuân. Khi ngày dài nhất, sao là sao Hoả (Antares) thì là giữa Hạ.. Khi đêm dài trung bình, sao là Hư, là giữa mùa Thu. Khi ngày ngắn nhất sao là sao Mão (sao Rua, Pléiades) thì là giữa Ðông.." Rồi Nghiêu lại nói: "Này! hỡi các người Hi, Hoà, Năm quay lại sau 3 trăm với 6 tuần với sáu ngày (366 ngày, tuần của TQ xưa = 10 ngày); Lấy tháng nhận để đặt đúng bốn muà khiến cho hợp với năm thời tiết."

Ðoạn văn trên tương truyền viết cách đây khoảng 4 thiên niên kỷ. Thời đó người ta đã biết một năm thời tiết lớn hơn 365 ngày, nên phải dùng nhuận để gia giảm năm theo tuần trăng cho kịp với năm thời tiết. Nghĩa là năm âm lịch luôn quan hệ mật thiết với sự vận hành của mặt trời. Nói một cách khác Chúng ta có thể chuyển đổi từ lịch Gregoire(dương lịch) sang âm lịch hay ngược lại.

Một điều lý thú khác nữa là thời Nguyên, Minh các quan Khâm thiên giám như Quách Thủ Kính, Ðại Thống, để quan trắc được chính xác, họ chế một dụng cụ đo bóng mặt trời ở Bắc Kinh cao 20 mét để đo bóng mặt trời ngày Ðông chí. Ở Bắc bán cầu ngày Ðông Chí bóng nắng giữa trưa nghiêng về hướng bắc dài nhất trong năm. Xác định ngày Ðông Chí để kiểm tra các tháng nhuận, một việc chứng tỏ Lịch ta có yếu tố vận hành của mặt trời. Dụng cụ quan trắc càng cao thì sự đo đạc càng chính xác, nhưng cao quá thì bóng nắng bị mờ. Các quan thời ấy khoét một lỗ nhỏ trên tấm đồng căng sợi chữ thập trong lỗ nhỏ đó để bóng của nó tăng độ chính xác. Họ đã tính được một năm dài 365,2425 ngày (ngày nay chúng ta đo được là 365,2422509 ngày). Một tuần trăng là 29,530593 (ngày nay là 29,530588) sai dưới 0.26 giây cho một tuần trăng!

Vài Website dưới đây VNX xem thử có dùng gì được không. Họ có bản chuyển đổi đã chạy tốt nữa.

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

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

http://www.ifis.uni-luebeck.de/~duc/amlich/JavaScript/?month=9&year=2015

Thân
TC
Vạn kim bảo kiếm tàng thu thuỷ
Mãn mã xuân sầu áp cẩm yên.
Đăng nhập để trả lời
0

Trích đoạn: Trương Củng


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

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

http://www.ifis.uni-luebeck.de/~duc/amlich/JavaScript/?month=9&year=2015

Thân
TC


Q vào mấy trang này đọc, đọc xong thấy choáng váng luôn á...

cho Q hỏi chút xíu, vậy là mình chỉ có thể chuyển đổi từ dương lịch sang âm lịch theo từng năm thôi hả?

Đăng nhập để trả lời
0

Trích đoạn: Trương Củng

Lịch ta hay âm lịch tuy là theo tuần trăng nhưng trong đó có sự tính toán để lịch ta luôn theo được sự vận hành của thời tiết tác động bởi mặt trời, người tây phương xếp loại lịch ta là Lunisolar Calendar. Ðể ý trong một tờ âm lịch ta sẽ thấy có phần gọi là tiết. Một năm tổng cộng có 24 tiết bắt đầu từ Lập Xuân và chấm dứt là Ðại Hàn, trong đó những ngày quan trọng là các Chí và Phân: Xuân Phân, Thu Phân, Hạ Chí, Ðông Chí luôn khớp với Lich tây, sai biệt thường không quá một ngày. Ðó là điểm dễ thấy nhất, chứng tỏ sự Lịch ta có yếu tố vận hành của mặt trời trong đó.

Đúng vậy, âm lịch của mình sau mấy ngàn năm vẫn không thấy các mùa bị sai lệch (so với mặt trời), không như lịch mặt trăng của hồi giáo, chỉ dựa theo trăng nên năm của họ ngắn hơn năm bên dương lịch khoảng 11 ngày. Nhưng chính đây mới là cái khó khăn để chuyển đổi dương lịch sang âm lịch, vì có những thêm bớt đặc biệt...

Ðiểm thứ hai là số tháng nhuần, cứ 19 năm lúc nào lịch ta cũng có 7 tháng nhuần, tuần hoàn. Số Tháng nhuần này là để vòng tuần hoàn của trăng đuổi kịp với mặt trời.

19 năm là vì chu kỳ của mặt trăng quanh trái đất & mặt trời là 19 năm, nghĩa là ví dụ như tháng 1 năm 2005, rằm vào ngày 25 thì 19 năm sau, năm 2024, ngày 25 tháng 1 cũng sẽ là ngày rằm.
Vấn đề là thiệt ra chu kỳ này không phải là chính xác 19 năm mà là 19 năm 1 giờ 29 phút !
Chắc chắn trong âm lịch có cách thêm ngày để lấp cái số giờ thừa này, nên sau bao nhiêu thế kỷ muh lịch vẫn không bị xê dịch... Mấy cái đặc điểm này càng tạo khó khăn cho việc tính bằng máy...
[:)]
Đăng nhập để trả lời
0
Cảm ơn bạn TC rất nhiều.
KDG ah, khi mình muốn tra cứu thì cứ tra theo thời gian cách của bạn TC đó, hihi, nhưng với người ko quen biết mà chỉ nói có năm âm lịch thì mặc xác người ta, việc quái gì phải tra cứu. Còn nếu người đó nổi tiếng tất sẽ có năm sinh năm mất dương lịch.
Hehe
26061905
Đừng để nỗi buồn hôm nay
Là nguyên nhân nỗi buồn ngày mai
Đăng nhập để trả lời
0
Chắc chắn trong âm lịch có cách thêm ngày để lấp cái số giờ thừa này, nên sau bao nhiêu thế kỷ muh lịch vẫn không bị xê dịch... Mấy cái đặc điểm này càng tạo khó khăn cho việc tính bằng máy...

Vậy nên chuyển đổi rất khó, tuy là không phải hoàn toàn không làm được. Người lập ra chương trình VNCal , Ông HNÐ, cũng có đề cập đến vấn đề cải chính của Âm lịch qua các triều đại. Làm sao biết được lúc nào lịch được cải chính, thay đổi thì phải nhờ đến các sử gia, đặc biệt HNÐ dùng các tài liệu của GS. Hoàng Xuân Hãn để đối chiếu lich Việt Nam và TQ. Lịch Việt Nam và TQ đôi lúc có khác biệt, muốn truy tầm một ngày nào đó trong lịch sử Việt Nam thì phải theo lịch Việt Nam, không thể theo lịch TQ. Trong ÐVSKTT Ngô Sĩ Liên đã làm việc đối chiếu đó một lần rồi.
Trong bài:Âm lịch Việt Nam qua các thời kỳ lịch sử ông HNÐ có liệt kê những thay đổi, và những đoạn không thể tra cứu, tính toán được. Thí dụ như:
"Từ 900 đến 1300, chương trình hiển thị ngày tháng âm lịch của lịch Trung Quốc [5]. Những dữ liệu này thật ra không hoàn toàn phù hợp với lịch Việt Nam trong khoảng 1080-1300 như ta đã biết, nhưng vì không có đủ tài liệu để tái tạo lịch nên chưa thể khắc phục được."

Nói chung là lịch phải đi với sử, cho nên chúng ta nói Lịch Sử là vậy.

To VNX: vì vấn đề Âm Lịch luôn được cải chính, thay đổi theo từng thời kỳ, triều đại, vì sau vài trăm năm cái công thức 7 tháng nhuần cho 19 năm có sai số (như KDG nói: dư 1g26p) nên chương trình tính phải làm từng đoạn cho vài trăm năm, chưa kể mỗi triều đại có khi lịch mới cải chính có khi sai trong đó, và sự khác nhau giữa lịch Việt Nam và TQ.... nên Chương trình Java Script mà HNÐ cho chỉ tính được trong khoảng thời gian 1800-2199. Còn cuốn lịch mà chúng ta thấy ở website của ông được nới rộng hơn, có nhiều phần khác nhau như đã nói ở trên. Chắc trong chương trình lập kế hoạch và nhắc việc trong năm VNX cũng đâu cần tính chi xưa hơn năm 1800.

Thân,
TC
Đăng nhập để trả lời
0
Hehe, CT của mình chỉ tình từ thế hệ ông bà mình trở về thôi, còn trước đó thì là chuyện thiên hạ
Hehe
Cảm ơn các bạn nhiều
Hehe, câu thêm được một bài nữa
26061905
Đừng để nỗi buồn hôm nay
Là nguyên nhân nỗi buồn ngày mai
Đăng nhập để trả lời
0
Vì chu kỳ trong âm lịch chỉ có 60 năm, nên đổi từ âm lịch sang dương lịch thì coi bộ khó, thí dụ như là 1885, 1945 và 2005 đều là Ất Dậu, nếu chỉ nói năm Ất Dậu, làm sao biết được là năm nào tây lịch...


Vậy cho nên trong bản đính kèm có chỉ dẫn là phải dùng tài liệu niên biểu sử, theo các đời vua TQ hay Việt Nam. Nói một năm Ất Dậu nào đó mà không có kèm theo đời vua nào thì làm sao biết là thuộc vào thời nào. Trong cổ sử như ÐVSKTT khi nói đến một năm nào đó luôn là theo niên hiệu của một ông vua, có vậy mới tính được. Ngay cả như thời xưa không có tây lich, khi muốn nói đến một năm nào đó người cũng nói là năm ất dậu đời vua ABC, hoặc năm thứ XX niên hiệu Cảnh Hưng hay Thuận thiên gì đó.

Thân
TC
Vạn kim bảo kiếm tàng thu thuỷ
Mãn mã xuân sầu áp cẩm yên.
Đăng nhập để trả lời
0