Cách kiểm tra năm nhuận trong C#
Trong bài viết này mình sẽ hướng dẫn các bạn cách kiểm tra năm nhuận trong C#. Như các bạn đã biết thì chúng ta có năm nhuận và năm không nhuận, vậy làm sao để phân biệt nó trong toán học.
Hiểu đơn giản thì năm nhuận sẽ hơn năm không nhuận một ngày và năm nhuận cách nhau mỗi 4 năm một lần. Ví dụ năm không nhuận có 365 ngày thì năm nhuận sẽ là 366 ngày.
Trong toán học, năm nhuận sẽ được xác định như sau:
- Năm nhuận là năm chia hết cho 400.
- Năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100.
Kiểm tra năm nhuận của một năm có sẵn trong C#
Dựa vào các xác định năm nhuận trong toán học đã đưa ra ở trên. Năm nhuận được xác định khi chia hết cho 400, chia hết cho 4 nhưng không chia hết cho 100.
Bài viết này được đăng tại [free tuts .net]
Sử dụng biến isLeap thuộc kiểu bool để trả về giá trị true hoặc false. True nếu là năm nhuận và false nếu là năm không nhuận, từ đó sẽ biết được và hiển thị kết quả ra màn hình.
Trong đoạn chương trình dưới đây mình có giải thích chi tiết trong các dòng lệnh, các bạn có thể tham khảo nhé.
using System; namespace BaiTapCSharp { class Program { static void Main(string[] args) { //khai báo biến year là năm cần kiểm tra và biến isLeap để kiểm tra phải năm nhuận hay không int year = 2022; bool isLeap = false; // mạc định là giá trị false if (year % 4 == 0)//chia hết cho 4 là năm nhuận { if (year % 100 == 0) //nếu vừa chia hết cho 4 mà vừa chia hết cho 100 thì không phải năm nhuận { if (year % 400 == 0)//chia hết cho 400 là năm nhuận isLeap = true; else isLeap = false;//không chia hết cho 400 thì không phải năm nhuận } else//chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận isLeap = true; } else { isLeap = false; } //kiểm tra nếu là năm nhuận hay năm không nhuận thì hiển thị ra màn hình //nếu isLeap = true tức là năm nhuận, ngược lại isLeap = false là năm không nhuận if (isLeap == true) Console.WriteLine("\n "+ year + " la nam nhuan."); else Console.WriteLine("\n "+ year + " khong phai la nam nhuan."); Console.WriteLine("\n-----Chuong trinh nay duoc dang tai Freetuts.net---"); } } }
Kết quả: Với year = 2022 thì kết quả trả về sẽ là năm không nhuận
Kiểm tra năm nhuận của một năm nhập từ bàn phím trong C#
Tương tự như chương trinh 1, ở chương trình này mình chỉ yêu cầu người dùng nhập năm cần kiểm tra thay vì gán sẵn.
using System; namespace BaiTapCSharp { class Program { static void Main(string[] args) { int year; bool isLeap = false; //yêu cầu người dùng nhập vào năm cần kiểm tra Console.Write("\n Nhap vao nam can kiem tra: "); year = Convert.ToInt32(Console.ReadLine()); if (year % 4 == 0)//chia hết cho 4 là năm nhuận { if (year % 100 == 0) //nếu vừa chia hết cho 4 mà vừa chia hết cho 100 thì không phải năm nhuận { if (year % 400 == 0)//chia hết cho 400 là năm nhuận isLeap = true; else isLeap = false;//không chia hết cho 400 thì không phải năm nhuận } else//chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận isLeap = true; } else { isLeap = false; } //kiểm tra nếu là năm nhuận hay năm không nhuận thì hiển thị ra màn hình //nếu isLeap = true tức là năm nhuận, ngược lại isLeap = false là năm không nhuận if (isLeap == true) Console.WriteLine("\n "+ year + " la nam nhuan."); else Console.WriteLine("\n "+ year + " khong phai la nam nhuan."); Console.WriteLine("\n-----Chuong trinh nay duoc dang tai Freetuts.net---"); } } }
Kết quả:
Kiểm tra năm nhuận bằng cách sử dụng hàm trong C#
Trong chương trình này mình sẽ thực hiện tạo một hàm KTNamNhuan()
với tham số truyền vào là năm cần kiểm tra.
static void KTNamNhuan(int year) { bool isLeap = false; if (year % 4 == 0)//chia hết cho 4 là năm nhuận { if (year % 100 == 0) //nếu vừa chia hết cho 4 mà vừa chia hết cho 100 thì không phải năm nhuận { if (year % 400 == 0)//chia hết cho 400 là năm nhuận isLeap = true; else isLeap = false;//không chia hết cho 400 thì không phải năm nhuận } else//chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận isLeap = true; } else { isLeap = false; } //kiểm tra nếu là năm nhuận hay năm không nhuận thì hiển thị ra màn hình //nếu isLeap = true tức là năm nhuận, ngược lại isLeap = false là năm không nhuận if (isLeap == true) Console.WriteLine("\n " + year + " la nam nhuan."); else Console.WriteLine("\n " + year + " khong phai la nam nhuan."); }
Sau đó gọi hàm KTNamNhuan()
hở hàm Main()
với tham số là giá trị được nhập từ bàn phím bởi người dùng.
using System; namespace BaiTapCSharp { class Program { static void KTNamNhuan(int year) { bool isLeap = false; if (year % 4 == 0)//chia hết cho 4 là năm nhuận { if (year % 100 == 0) //nếu vừa chia hết cho 4 mà vừa chia hết cho 100 thì không phải năm nhuận { if (year % 400 == 0)//chia hết cho 400 là năm nhuận isLeap = true; else isLeap = false;//không chia hết cho 400 thì không phải năm nhuận } else//chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận isLeap = true; } else { isLeap = false; } //kiểm tra nếu là năm nhuận hay năm không nhuận thì hiển thị ra màn hình //nếu isLeap = true tức là năm nhuận, ngược lại isLeap = false là năm không nhuận if (isLeap == true) Console.WriteLine("\n " + year + " la nam nhuan."); else Console.WriteLine("\n " + year + " khong phai la nam nhuan."); } static void Main(string[] args) { int year; Console.Write("\n Nhap vao nam can kiem tra: "); year = Convert.ToInt32(Console.ReadLine()); //gọi hàm KTNamNhuan() để kiểm tra vừa nhập vào KTNamNhuan(year); Console.WriteLine("\n-----Chuong trinh nay duoc dang tai Freetuts.net---"); } } }
Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình kiểm tra năm nhuận trong C#. Đây là một dạng bài tập thường gặp trong các ngôn ngữ lập trình, bởi tính kết hợp của nó. Các bạn hãy luyện tập thật nhiều để có thể làm các bài tập phức tạp hơn nữa nhé, chúc các bạn thành công !!!