Đang bí không biết lập trình thế nào để tính lịch âm may mà có bác hướng dẫn tỉ mỉ nhiệt tình!thanks bác nhìu!hj
Thông báo
Collapse
No announcement yet.
Thuật toán tính Âm lịch từ Dương lịch dùng phương pháp tra bảng
Collapse
X
-
Chào bác pct.com
Nếu theo code của bác thì ngày 23-6-2009 DL thì tính ra là ngày 1-6-2009 AL. Nếu là tháng bình thường thì đúng nhưng bắt đầu từ ngày 23-6-2009 DL đến ngày 21-7-2009 DL sẽ nhuận 1 tháng thì âm lịch vẫn là tháng 5 chứ không phải tháng 6.
Thân chào bác.
Comment
-
Hi, mhl167 bạn đọc kỹ và hiểu code trong các bài viết trên chưa mà dám nói chắc vậy? code trên không mắc lỗi như bạn nói đâu.PCT COMPUTER
(Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)
Comment
-
Mình ko lập nhiều thông tin như chủ thớt, bảng tra của mình chỉ gồm:
- Ngày âm đầu tiên trong tháng
- Ngày âm cuối cùng trong tháng
- Tổng số ngày DL trong tháng.
Với từng này tham số là đủ rồi. CÒn việc thêm nhuận thì chỉ cần gán cụ thể cho tháng đó, năm đó là đc. Chỉ cần đồng hồ chạy đc 5 năm là ổn lắm rồi_Tuổi thọ thế là ok. Hơn hẳn mấy cái đồng hồ bán ở thị trường, chóng hỏng kinh khủng.
Add: 97 Quán Nam - Lê Chân - Hải Phòng.
Tel: 031 518648 Phone: 0904 283 505
Comment
-
Nguyên văn bởi pctcom Xem bài viếtHi, mhl167 bạn đọc kỹ và hiểu code trong các bài viết trên chưa mà dám nói chắc vậy? code trên không mắc lỗi như bạn nói đâu.
Theo code của bác thì tính như sau:
DL2009_6: DB 9,5,23,5,30
1) MOV B,NGAY ; NGAY hien tai
MOV A,N_DL_DAU_THANG ; tru di ngay duong lich tuong ung voi mung 1 am lich trong thang
CLR C
SUBB A,B
Thì ngày hiện tại là ngày 23, ngày DL đầu tháng là ngày 23 (luu trong dữ liệu DL2009_6)
Gán cờ C=0
23-23=0 suy ra cờ C=0.Tiếp theo:
2) JC SET_NGAY ;
MOV THANG_AL,T_AL_DAU_T_DL ;NGAY HT Lon HON NGAY DAU THANG AL thi Thang_al = T_AL_DAU_T_DL
MOV A,NGAY ;THI NGAY AL = NGAY AL DAU THANG + NGAY HT
MOV B,N_AL_DAU_THANG
ADD A,B
DEC A
CJNE A,#31,CAT_NGAY_AL
MOV A,#1
INC THANG_AL
Tháng AL=T_AL_DAU_T_DL = 5 (luu trong dữ liệu DL2009_6)
Ngày AL= Ngày hiện tại + N_AL_DAU_THANG -1 = 23+9-1=31
So sánh với 31 thì bằng với 31 nên gán Ngày AL=1 và tăng Tháng AL lên 1 tức là Tháng AL=5+1=6
3) CAT_NGAY_AL:
MOV NGAY_AL,A
MOV A,THANG_AL
CJNE A,#13,EXIT_SET_NGAY
MOV THANG_AL,#1
LJMP EXIT_SET_NGAY
Còn đoạn lênh này thì không ảnh hưởng đến ngày tháng AL trên và tháng AL chưa đến 13
Các bác xem mình giải thích vậy đúng chưa? Có gì góp ý thêm.
Đây là diễn đàn để chia sẻ và học hỏi kiến thức lẫn nhau nên có góp ý thì cần nên lịch sự nhé.
Thân chào bác.
Comment
-
Thực sự mình thấy code của bác ptc.com rất hay. Bản thân mình học hỏi được rất nhiều. Mình chỉ đưa ra vài ý kiến vậy thôi chứ bản thân mình không dám chỉ trích ai cả. Mong anh em diễn đàn hiểu cho. Bác chia sẻ giải thuật cho anh em diễn đàn thì biết bác rất nhiệt tình lắm rồi. Thanks bác 100 cái luôn.
Comment
-
Các bác có thể vô trang này để tra âm lịch:
Am lich - Tra cuu am lich - Chuyen doi am lich Duong lich
Comment
-
Mình nghiên cứu thì thấy cần xử lý thêm tháng mà có 2 ngày mùng 1 âm, khi đó có lẽ chúng ta cần phải chú ý trong khi lập bảng, coi ngày mùng 1 đầu tiên là tháng AL cũ, ngày mùng 1 tiếp theo mới là ngày AL đầu tiên của tháng tiếp theo.Last edited by hoangdai; 27-12-2011, 00:56.
Add: 97 Quán Nam - Lê Chân - Hải Phòng.
Tel: 031 518648 Phone: 0904 283 505
Comment
-
Nguyên văn bởi hoangdai Xem bài viếtMình nghiên cứu thì thấy cần xử lý thêm tháng mà có 2 ngày mùng 1 âm, khi đó có lẽ chúng ta cần phải chú ý trong khi lập bảng, coi ngày mùng 1 đầu tiên là tháng AL cũ, ngày mùng 1 tiếp theo mới là ngày AL đầu tiên của tháng tiếp theo.
Ngày DL 24-5-2009 có ngày AL là 1-5-2009 và ngày DL 23-6-2009 có ngày AL cũng là 1-5-2009.
Nguyên nhân vì sao? Vì nếu âm lịch không lặp lại thì sẽ đi trước dương lịch, dương lịch trong 1 tháng có tối đa 31 ngày còn âm lịch thì tối đa tới 30 ngày thôi.
Do đó các bạn lập trình nên lưu ý. Mình đã rồi nên lưu ý cho các bạn.
Chúc mọi người vui vẻ.
Thân chào.
Comment
-
Vấn đề bác đưa ra thì thuật toán của chủ thớt vẫn xử lý đc vì trong bảng tra đã chỉ rõ tháng AL đầu tháng DL và tháng AL trong tháng DL( Hơi loằng ngoằng tí). Có 1 điều thú vị nữa là sẽ xuất hiện tháng mà ko có ngày mùng 1 âm lịch ( Tháng 2(DL) năm 2014), như vậy chúng ta khi làm bảng nhớ thêm ngày cho tháng 2 này để nó có ngày mùng 1 AL nhé. Đồng hồ mình làm bán chạy rất tốt(có tham khảo thêm cách của chủ thớt để tốt hơn), mong rằng các bạn hiểu đc cách làm và có thuật toán hay cho riêng mình.
Với code C thì chỉ mất có chừng 10 dòng là đã có ngày AL và tháng AL rồi.
Add: 97 Quán Nam - Lê Chân - Hải Phòng.
Tel: 031 518648 Phone: 0904 283 505
Comment
-
Nguyên văn bởi hoangdai Xem bài viếtMình nghiên cứu thì thấy cần xử lý thêm tháng mà có 2 ngày mùng 1 âm, khi đó có lẽ chúng ta cần phải chú ý trong khi lập bảng, coi ngày mùng 1 đầu tiên là tháng AL cũ, ngày mùng 1 tiếp theo mới là ngày AL đầu tiên của tháng tiếp theo.
;ngày AL dau thang; thang AL dau thang; ngay dl dau thang AL;thang AL cua dau thang AL; so ngay DL trong thang
Với 5 biến này vấn đề trên của bạn sẽ được giải quyết thật dễ dàng.Last edited by pctcom; 11-01-2012, 13:51.PCT COMPUTER
(Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)
Comment
-
Đọc TUT này thanhks các bác rất nhiều! Tui có ý này nói ra không biết có đúng không ? Có phải tháng nào mà chỉ 1 tháng âm lịch thì cứ phán đại ngày DL đầu tháng Al > tổng số ngày trong tháng là OK bởi vì
Tính ngày Âm lịch:
Nếu (ngày Dương lịch tương ứng với ngày đầu tháng Âm lịch) bằng (ngày hiện tại) thì ngày Âm lịch bằng 1(không xảy ra trường hợp này vì giả thiết ở trên)
(N_DL_DAU_THANG = NGAY => NGAY_AL = 1)
Hoặc (ngày Dương lịch tương ứng với ngày đầu tháng Âm lịch) trừ (ngày hiện tại): (N_DL_DAU_THANG - NGAY) :Xảy ra C=0 vì luôn lớn hơn
- Nếu không có nhớ (C=0) thì ngày Âm lịch bằng (ngày Dương lịch hiện tại) cộng (ngày Âm lịch của đầu tháng Dương lịch) rồi trừ 1
(NGAY_AL = ((NGAY + N_AL_DAU_THANG)-1) Trường hợp này luôn đúng vì không liên quan gì tới ngày DL đầu tháng AL
- Nếu có nhớ (C=1) thì ngày Âm lịch hiện tại bằng (ngày Dương lịch hiện tại) trừ (ngày Dương lịch đầu tháng Âm lịch) rồi + 1
(NGAY_AL = ((NGAY - N_DL_DAU_THANG)+1)
Còn tháng AL đầu tháng AL thì bằng tháng AL đầu tháng DL là OK phải không các bác
Kiểm chứng
DL2014_2: DB 2,1,30,2,28 ;không có ngày 1AL có thể sửa lại là 2,1,31,1,28 hoặc 2,1,29,1,28
vì N_DL_DAU_THANG =29,30,31 điều >28 -->ngày âm= 12(dương)+2-1=13
Còn tháng với năm thì luôn bằng 1 -2014
Có lỗi chỗ nào các bác chỉ với nha. ThanksLast edited by tienhuypro; 12-01-2012, 01:17.
Email:
Tel: 0983.497.310
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỗ trợ tìm linh kiện mạch hạ áp 220V - 110Vbởi davidcopyTheo như A.I phân tích thì mạch này ghim điện DC ngõ ra, tụ 250VDC thì ngõ vào khoảng 220VDC là ok....
-
Channel: Hướng dẫn tìm thông tin linh kiện
Hôm qua, 11:45 -
-
bởi davidcopybạn cần hỗ trợ gì sao không viết ra hoặc chụp hình kèm chú thích...
-
Channel: Hỗ trợ học tập
Hôm qua, 10:13 -
-
Trả lời cho Sạc bình acquy 30ahbởi dinhthuong80Đình Thường xin phép nhờ chủ đề này để chia sẻ về 1 bộ sạc bình. Xin được nói trước là không có ý xoi mói tìm lỗi, chỉ nhằm mục đích chia sẻ về vấn đề kĩ thuật cho ai quan tâm thôi ạ!
Chúng ta không nên dùng bộ sạc...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 10:05 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamBình thường là vậy. Họ không hiểu thì họ là người không bình thường.
Bác không có việc làm, vẽ chuyện kiếm niềm vui, không vui thì buồn vậy....-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 10:03 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi dinhthuong80Dạ, bình thường sẽ là vậy, ai cũng hiểu nhưng cháu vẫn rất sợ sẽ có người cố tình không hiểu và lí luận soi mói ấy bác ạ! Vì rõ ràng nó có tan... vài phân tử trong nước rồi mới thôi tan!!!!...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 09:33 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamAL là kim loại không tan trong nước là đúng vì khi tiếp xúc với nước sẽ tạo thành Al (OH)3 ngăn không cho phản ứng tiếp tục và phản ứng dừng lại ngay....
-
Channel: Tâm tình dân kỹ thuật
07-03-2025, 17:57 -
-
bởi mèomướpDạ chú nên dùng bếp gas ạ. Chơi với điện mùa hè cẩn thận khách chạy hết ấy ạ. Hôm nọ đi học về cháu thấy chị học trên cháu 1 lớp nhà chị ấy có điện 3 pha ấy ạ, nên chắc là lắp được nhưng tốn xiền ạ...
-
Channel: Điện tử gia dụng
07-03-2025, 16:10 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi dinhthuong80Có lẽ nào vì bác nói chưa rõ nên họ bắt bẻ chỗ
Bởi cháu nhớ ngày xưa họ nói nhôm là kim loại khá mạnh, nếu là nguyên chất nó sẽ phản ướng với nước tạo ra nhôm hidroxit có màu trắng xốp sệt như xà phòng...-
Channel: Tâm tình dân kỹ thuật
07-03-2025, 14:52 -
-
bởi gameba1993cảm ơn bạn, mình hộ kinh doanh gia đình thì xin điện 3 pha có được không nhỉ....
-
Channel: Điện tử gia dụng
07-03-2025, 14:21 -
-
bởi mèomướpDạ điện 1 pha dân dụng tối đa phụ thuộc công tơ điện, át tô mát, dây dẫn. Ví dụ công tơ 50A, át 30A, dây dẫn 8mm2 thì tối đa là 30A từ đó tính được công suất max khoảng 6kw. Của chú 10kw thì có lẽ điện 3 pha sẽ ổn hơn ạ...
-
Channel: Điện tử gia dụng
07-03-2025, 13:59 -
Comment