Năm nay là năm 2016 và nó là năm nhuận nên cụ thể mai sẽ là ngày 29/2 chứ không phải là 1/3 như mọi năm. Theo đa số mọi người biết thì cứ 4 năm sẽ có một năm nhuận một lần nên nếu nhờ một người nào đó chỉ cách xác định năm xxxx gì đó có phải năm nhuận hay không thì chắc chắn nhiều người sẽ quả quyết là cứ lấy số xxxx đó chia cho 4. Nếu phép chia hết thì năm đó là năm nhuận. Sai đó các bạn ơi! Không tin các bạn thử kiểm tra năm 1900 – một số chia hết cho 4 xem có phải năm nhuận hay không. Kết quả là không phải năm nhuận. Bối rối chưa :v
Thật ra năm nhuận sẽ được tính như sau: Số năm ở đây mình ví dụ là xxxx. Bạn lấy xxxx chia cho 4 nếu không hết thì rõ ràng nó không nhuận. Nếu chia hết cho 4 thì phải xem tiếp yếu tố thứ 2 là nó có chia hết cho 100 hay không. Nếu nó không chia hết cho 100 thì nó là năm nhuận nhưng nếu nó chia hết cho 100 thì tiếp tục xem yếu tố thứ 3 là nó có chia hết cho 400 hay không. Nếu nó chia hết thì nó là năm nhuận và ngược lại không chia hết thì không phải là năm nhuận.
Chia sẻ mã PHP cho mấy bạn mê lập trình luôn :v
Code của thằng lập trình siêng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function is_leap_year($year) { $x = false; if($year % 4 == 0){ if($year % 100 == 0){ if($year % 400 == 0){ $x = true; } } else{ $x = true; } } return $x; } |
Code của thằng lập trình lười biếng
1 2 3 | function is_leap_year($year){ return $year % 4 == 0 && ($year % 100 != 0 || $year %400 == 0); } |
Tản mạn sẵn dịp năm nhuận chia sẻ một thuật toán thực tế với các bạn luôn.
Chúc các bạn thành công.
Huỳnh Mai Anh Kiệt