Nhờ kiểm tra code đổi lịch âm dương

  • Thread starter Thread starter ngo15
  • Ngày gửi Ngày gửi
Liên hệ QC

ngo15

Thành viên chính thức
Tham gia
24/6/06
Bài viết
75
Được thích
44
Tôi có sưu tầm được code chuyển đổi âm lịch ra dương lịch và ngược lại, nói chung là đúng. Nhưng hôm nay phát hiện ra có một số ngày bị sai. Nhờ các bạn kiểm tra hộ sai ở đâu? Xin cám ơn
 

File đính kèm

Trong file bạn gửi lên có nhầm lẫn trong hàm lunar nên cho kết quả sai. Bạn download lại file này và kiểm tra xem có lỗi không nhé.

TP.
 

File đính kèm

Upvote 0
Khi kiểm tra bạn sẽ thấy những ngày nào mà ngày lớn hơn 12 sẽ cho kết quả đúng. Ngược lại những ngày nhỏ hơn hoặc bằng 12 sẽ cho kết quả sai. Nguyên nhân như sau:
Trong hàm lunar của bạn có 1 dòng lệnh
DiffADate = DateDiff("d", #1/31/1900#, CDate(d & "-" & m & "-" & y))
Phần bôi đỏ gây ra lỗi, vì với hàm CDate mặc định chuyển theo định dạng tháng-ngày-năm, do đó ở đây d sẽ được hiểu là tháng nên gây ra lỗi. Nhưng với những ngày lớn hơn 12, tức là d lớn hơn 12 thì hàm CDate lại tự động đổi d thành ngày cho bạn nên vẫn sẽ cho kết quả đúng.
Bạn có thể sửa dòng lệnh bên trên bằng dòng lệnh sau:
DiffADate = DateDiff("d", DateSerial(1900, 1, 31), DateSerial(y, m, d))
Tôi khuyên bạn nên sử dụng hàm DateSerial khi cần nhập vào 1 ngày cụ thể.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom