Mời bác White_Rose ra tay.
Mời bác White_Rose ra tay.
Các bạn thử liên hệi với thầy Tăng Vĩnh Tài bên Vovisoft hoặc webmaster của vietshare.com.Hai vị tiền bối này có lẽ đã làm xong cái này rồi.Vấn đề này bên đó đã thấy nói đến từ năm ngoài rồi.Chắc giờ nãy đã có code trong Vb rùi.Chúc thành công
Một phương pháp "thực tế" nhất
Tôi đã theo dõi khá nhiều bài viết về cách đổi Âm Lịch - Dương Lịch nhưng không có bài viết nào chi tiết và cụ thể cả. Lùng sục trên Internet thì có tài liệu nghiên cứu về vần đề này nhưng cuối cùng phát hiện ra đây là vấn đề hết sức phức tạp (thậm chí ngay Lịch Trung Quốc cũng còn nhiều tranh cãi). Đa số các chương trình chuyển đổi âm-dương lịch đều tra theo dạng bảng thay vì làm một thuật toán chung. Ngoài ra lịch Việt Nam lại hơi lệch với lịch Trung Quốc (kg rõ lý do lắm).
Vậy nên theo tôi các bạn nên lập một Database list các năm (VD: từ 1900 - 2050 theo cuốn "Lịch Vạn Niên") và mỗi tháng bạn so khớp ngày đầu tháng Dương Lịch với ngày tháng Âm Lịch và từ đó tính ra các ngày khác. Như vậy mỗi năm bạn cần 12 records (ứng với 12 tháng), 150 năm cần 1800 records (kg phải quá nhiều, chỉ cần 2-3 ngày nhập liệu). Và một giải thuật rất đơn giản để tính ra ngày. Bạn cũng có thể thêm các dữ liệu khác vào database ấy như Can-Chi của ngày, tháng... để có một lịch hoàn chỉnh.
Mong các bạn đóng góp thêm. Thanks
hi lazy_program
Đúng là bạn lười lập trình nên đề ra phương thức cực khổ
như vậy. input data rồi lookup thì còn nói làm gì?
Anyway thank you.
Chà, bạn nói chính xác rồi đó. Đấy là phương châm của mình mà. Cái gì khó quá thì nên đi vòng để đạt tới mục tiêu trước, còn hơn mất thời gian để cuối cùng cứ lẩn quẩn với những giải thuật mà có thể bạn sẽ nhận thấy là "thà theo cách kia còn hơn" (hoặc vì nó quá phức tạp và tốn thời gian, hoặc không thể ứng dụng đc vì quá chậm). Vấn đề là deadline mà bạn đặt ra cho ctrình của mình phải ra đời.
Bạn vào website này:
http://emr.cs.iit.edu/home/reingold/...ion/index.html
Ở đó có tất cả các nghiên cứu về lịch Chinese, trong đó có một Applet đổi Âm-Dương lịch và nếu bạn xem source code thì bạn cũng thấy họ tra theo dạng bảng vì theo họ giải thuật quá phức tạp. Nếu như những người chuyên nghiên cứu về vấn đề này còn chọn cách tiếp cận như vậy thì chúng ta có nên đi theo con đường khó hơn chăng?
However, nếu bạn tìm được một giải thuật tốt, xin post lên cho mọi người tham khảo. Thanks.
Thanks for your link, Lazy_programmer
Mình đã load về cái source code bằng JAVA, xem wa thấy giải thuật wá phức tộp, họ không dùng cách tra bảng đâu, mình post len đây để mọi người cùng ngâm kứu và chuyển ngữ sang VB.
Mong mọi người cộng tác. Tks
lazy-programmer nói hay ghê luôn, đọc mãi không thấy chán.
Hình như không có tra bảng thật, Applet thì tra bảng cái gì nữa
Để vài hôm nữa WR translate ra VB xem sao. Nếu được thì baotrung nhớ đãi cafe nhá
Hic, thiếu nhiều class thế này thì chịu, chẳng tài nào mà convert được đâu.Code:// Referenced classes of package calendars: // MonthDayYear, AltCalendar, ArrayEnum, Gregorian, // Moment //...... public static final long EPOCH = (new Gregorian(2, 15, -2636)).toRD(); //......
Bạn lấy file đó ở đâu thì lấy hết luôn đi. Cái này chỉ là một class trong cả đống class của cái Applet đó thôi.
Hi WR
Thật thiếu sót, lấy tiếp gởi cho you đây, muốn convert sang Vb không những phải giỏi Java mà còn tinh thông thiên văn nữa
chúc you thành công, đừng nản chí nhé.
Cafe KOPIKO luôn sẵn sàng chờ
Bookmarks