Bài 20. Kiểm Tra Số Ngày Trong Tháng Với Switch ... Case | Tự Học Java Căn Bản
- Published on

Để giải bài toán kiểm tra số ngày trong tháng bằng câu lệnh switch
trong Java, trước khi viết code, bạn cần phải lên kế hoạch rõ ràng các bước. Dưới đây là các bước chi tiết để giải quyết bài toán này:
Các Bước Giải Quyết Bài Toán
-
Xác Định Đầu Vào
- Người dùng sẽ nhập vào 2 giá trị: tháng (1 - 12) và năm (có thể là năm nhuận hoặc không).
- Các giá trị này sẽ được lấy từ bàn phím hoặc giao diện người dùng.
-
Kiểm Tra Tính Hợp Lệ Của Tháng
- Tháng phải nằm trong khoảng từ 1 đến 12.
- Nếu giá trị tháng không hợp lệ, cần hiển thị thông báo lỗi và kết thúc chương trình hoặc yêu cầu người dùng nhập lại.
-
Xử Lý Số Ngày Trong Các Tháng Cố Định
- Các tháng có số ngày cố định:
- Tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày.
- Tháng 4, 6, 9, 11 có 30 ngày.
- Sử dụng câu lệnh
switch
để xử lý các tháng này.
- Các tháng có số ngày cố định:
-
Xử Lý Tháng 2
- Tháng 2 có số ngày thay đổi tuỳ thuộc vào năm nhuận.
- Cần kiểm tra xem năm có phải là năm nhuận hay không:
- Năm nhuận nếu năm chia hết cho 4, nhưng không chia hết cho 100, hoặc chia hết cho 400.
- Nếu năm là năm nhuận, tháng 2 có 29 ngày; nếu không, tháng 2 có 28 ngày.
-
Hiển Thị Kết Quả
- Sau khi xác định số ngày trong tháng, in ra kết quả cho người dùng, bao gồm:
- Số ngày trong tháng tương ứng với tháng và năm đã nhập.
-
Xử Lý Lỗi (nếu có)
- Nếu người dùng nhập tháng không hợp lệ (không phải từ 1 đến 12), chương trình cần thông báo lỗi và kết thúc hoặc yêu cầu nhập lại.
- Nếu năm nhập vào không hợp lệ (như năm âm), chương trình cần xử lý.
Tiến Hành Viết Code
Dưới đây là mã Java cho bài toán kiểm tra số ngày trong tháng:
import java.util.Scanner;
public class DaysInMonth {
public static void main(String[] args) {
// Bước 1: Nhập dữ liệu tháng và năm
Scanner scanner = new Scanner(System.in);
System.out.print("Nhập số tháng (1-12): ");
int month = scanner.nextInt(); // Nhập tháng
System.out.print("Nhập năm: ");
int year = scanner.nextInt(); // Nhập năm
// Bước 2: Kiểm tra tính hợp lệ của tháng
if (month < 1 || month > 12) {
System.out.println("Tháng không hợp lệ.");
return; // Kết thúc chương trình nếu tháng không hợp lệ
}
// Bước 3: Khai báo biến lưu số ngày trong tháng
int daysInMonth = 0;
// Bước 4: Xử lý số ngày trong tháng qua câu lệnh switch
switch (month) {
case 1: // Tháng 1
case 3: // Tháng 3
case 5: // Tháng 5
case 7: // Tháng 7
case 8: // Tháng 8
case 10: // Tháng 10
case 12: // Tháng 12
daysInMonth = 31;
break;
case 4: // Tháng 4
case 6: // Tháng 6
case 9: // Tháng 9
case 11: // Tháng 11
daysInMonth = 30;
break;
case 2: // Tháng 2
// Kiểm tra năm nhuận
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
daysInMonth = 29; // Năm nhuận
} else {
daysInMonth = 28; // Năm không nhuận
}
break;
}
// Bước 5: Hiển thị kết quả
System.out.println("Số ngày trong tháng " + month + " năm " + year + " là: " + daysInMonth);
}
}
Chạy và Kiểm Tra Kết Quả Bài Toán
Sau khi triển khai mã nguồn, chương trình sẽ yêu cầu bạn nhập vào tháng và năm để kiểm tra số ngày trong tháng. Dưới đây là một số ví dụ và kết quả khi chạy chương trình:
Ví dụ 1:
- Nhập:
Tháng = 2
,Năm = 2024
- Kết quả: "Số ngày trong tháng 2 năm 2024 là: 29"
- Giải thích: Vì năm 2024 là năm nhuận, nên tháng 2 có 29 ngày.
Ví dụ 2:
- Nhập:
Tháng = 2
,Năm = 2023
- Kết quả: "Số ngày trong tháng 2 năm 2023 là: 28"
- Giải thích: Năm 2023 không phải là năm nhuận, vì vậy tháng 2 có 28 ngày.
Ví dụ 3:
- Nhập:
Tháng = 4
,Năm = 2023
- Kết quả: "Số ngày trong tháng 4 năm 2023 là: 30"
- Giải thích: Tháng 4 có 30 ngày trong mọi năm.
Ví dụ 4:
- Nhập:
Tháng = 12
,Năm = 2025
- Kết quả: "Số ngày trong tháng 12 năm 2025 là: 31"
- Giải thích: Tháng 12 luôn có 31 ngày.
Ví dụ 5:
- Nhập:
Tháng = 13
,Năm = 2025
- Kết quả: "Tháng không hợp lệ."
- Giải thích: Số tháng phải trong phạm vi từ 1 đến 12, nên tháng 13 là không hợp lệ.
Tóm Tắt Các Bước Cần Thực Hiện
- Nhập tháng và năm từ người dùng.
- Kiểm tra tính hợp lệ của tháng (phải trong khoảng 1 - 12).
- Xử lý các tháng có số ngày cố định (31 hoặc 30 ngày).
- Kiểm tra tháng 2 và tính số ngày trong tháng dựa trên năm nhuận.
- In ra kết quả số ngày trong tháng tương ứng.
- Thông báo lỗi nếu tháng nhập vào không hợp lệ hoặc có lỗi khác.
Bây giờ, bạn có thể dễ dàng áp dụng các bước này để viết mã cho bài toán kiểm tra số ngày trong tháng bằng switch case
trong Java!
Bài tiếp theo: Bài 21. Cách sử dụng vòng lặp for trong Java
Bài viết mới nhất
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
Bài viết liên quan
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
