Thuật toán kiểm tra năm nhuận

Năm nhuận là gì?

Để cài đặt thuật toán kiểm tra năm nhuận, bạn cần hiểu năm nhuận là gì? Theo lịch dương, năm nhuận là những năm có 366 ngày, nếu năm đó không phải năm nhuận thì chỉ có 365 ngày.
Cụ thể, các năm nhuận thì tháng 2 sẽ có 29 ngày thay vì chỉ có 28 ngày.

kiểm tra năm nhuận

Thuật toán kiểm tra năm nhuận

Để kiểm tra 1 năm có phải năm nhuận hay không, chúng ta chỉ cần tuân theo 1 trong 2 nguyên tắc sau đây.

  1. Năm nhuận là năm chia hết cho 400
  2. Năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100

Nếu là lần đầu chắc bạn sẽ thắc mà nguyên tắc thứ 2. Vì bạn được nghe thường xuyên: “Cứ 4 năm lại có 1 năm nhuận”. Tuy nhiên, điều đó không đúng. Lý do:
Trái đất của chúng ta cần 365.25 ngày để quay hết một vòng quanh mặt trời. Phần dư 0.25 thực ra đã làm tròn, con số thực tế là 365.2425 ngày để trái đất quay được một vòng. Giá trị sai số này 0.0075 ngày(0.25 -0.2425) khi nhân với 400 chúng ta sẽ có thêm 3 ngày nữa. Do đó, để lịch của ta chính xác, các chu kỳ 100, 200 và 300 chỉ có 24 năm nhuận thay vì 25. Riêng chu kỳ thứ 400 sẽ có 25 năm nhuận. Điều đó đảm bảo rằng chu kỳ 400 năm sẽ có 97(24+24+24+25) năm nhuận. Như vậy, cứ 400 năm chúng ta sẽ có 97 năm nhuận, không phải 100 nhé.

Khi đó: các năm 400, 404, 408, 800, 896, 1200, 1600, 2000, 2004 là các năm nhuận, trong khi 500, 600, 700.. 1100, 2100 không phải năm nhuận, do chúng chia hết cho cả 4 và 100.

Code kiểm tra năm nhuận

Sau đây mình sẽ cùng các bạn đi cài đặt thuật toán kiểm tra năm nhuận trên các ngôn ngữ lập trình khác nhau.

Kiểm tra năm nhuận trong C/C++

Bạn có thể viết ngắn gọn hàm kiểm tra năm nhuận trên 1 dòng duy nhất như sau:

Kết quả chạy:

Kiểm tra năm nhuận code java

Code tìm năm nhuận với C#

Bạn chỉ cần sử dụng hàm có sẵn DateTime.IsLeapYear():

Cài đặt với Python

 

avatar
  Subscribe  
Notify of