Uhm ý của mình là như vậy đó dùng Calculator
Nam_nhuan =
(Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0))
1. Năm không chia hết cho 4 thì không là năm nhuận. Nếu năm chia hết cho 4 thì sang bước 2.
2. Nếu năm không chia hết cho 100 hoặc năm chia hết cho 400 (vd. 2000) thì là năm nhuận. Nói cách khác nếu năm chia hết cho 100 nhưng không chia hết cho 400 thì không là năm nhuận, còn lại là năm nhuận. Nói cách khác 1900, 2100, 2200, 2300 không là năm nhuận còn lại các năm khác cho tới 2300 đều là năm nhuận. Nếu cần thời gian cho chắt chít chít thì 2400 là năm nhuận, còn 2500, 2600, ... không là năm nhuận.
--------------
Cách tính:
1. Giả sử năm là y, tháng là m, ngày là d. Nếu y = 1900 thì tính từ bước 5.
2. Tính n = (y - 1901) mod 4, tức chia tay (y - 1901) cho 4 được n dư r (0 ≤ r ≤ 3)
3. Nếu 2100 < y ≤ 2200 thì n = n - 1 (bớt đi 1), nếu 2200 < y ≤ 2300 thì n = n - 2
4. Từ 1/1/1900 tới 31/12/(y-1) có k = (y - 1900)*365 + n[ngày]
5. Từ 1/1/y tới d/m/y có p ngày. Để tính p thì nắm bàn tay lại và đếm: những tháng tại chỗ xương gồ lên có 31 ngày, những chỗ lõm có 30 ngày, riêng tháng 2 có 29 ngày nếu y là năm nhuận còn lại thì 28 ngày.
---------
vd, ngày 28/2/2014
n = 28
k = 41638
Từ 1/1/2014 tới 28/2/2014 có 31 + 28 = 59 ngày
=> từ 1/1/1900 tới 28/2/2014 có 41638 + 59 = 41697 ngày
---------------
Kết quả trên nhỏ hơn kết quả của Excel 1 ngày. Vì không hiểu sao với 31/12/1900 Excel lại trả về 366, tức với Excel thì có ngày lịch 29/02/1900 trong khi năm 1900 không là năm nhuận. Mà xem một số lịch thì năm 1900 không có ngày 29/02/1900
----------------
Nói cho cùng thì chỉ cần nhớ nguyên tắc nêu ra trong phần đầu (
đỏ đỏ). Khi cần tính toán thì tự tư duy ra thôi.