Chương Trình Java Tìm Số Ngày Của Tháng Trong Một Năm
Có thể bạn quan tâm
1. Quy tắc số ngày của tháng trong một năm
Một năm có 12 tháng, mỗi tháng sẽ có số ngày khác nhau.
Các tháng có 31 ngày là 1, 3, 5, 7, 8, 10, 12. Các tháng có 30 ngày là 4, 6, 9, 11. Tháng 2 có 28 ngày nếu thuộc năm không nhuận, có 29 nếu thuộc năm nhuận.
Vậy năm nhuận là năm như thế nào? Năm nhuận là năm chia hết cho 4 nhưng không chia hết 100 hoặc chia hết 400.
Chương trình tìm số ngày của tháng trong một năm được thực hiện như sau:
– Nhập tháng và năm từ bàn phím.
– Kiểm tra nếu tháng là 1, 3, 5, 7, 8, 10, 12 thì in ra màn hình tháng đó có 31 ngày. Nếu tháng là 4, 6, 9, 11 thì in ra màn hình tháng đó có 30 ngày.
– Kiểm tra nếu tháng là 2 thì kiểm tra năm nhuận. Nếu năm nhuận thì in ra màn hình tháng 2 có 29 ngày, ngược lại tháng 2 có 28 ngày.
– Nếu giá trị tháng không nằm trong khoảng từ 1 đến 12 thì in ra màn hình tháng không hợp lệ.
2. Sử dụng câu lệnh switch case trong Java
Sử dụng câu lệnh switch case để kiểm tra các tháng.package numberdayinmonth; import java.util.Scanner; public class NumberDayInMonth { public static boolean checkYear(int nam) { return (nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0; } public static void main(String[] args) { int month, year; Scanner input = new Scanner(System.in); System.out.print("Input month: "); month = input.nextInt(); System.out.print("Input year: "); year = input.nextInt(); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.print("Month " + month + "th has 31 days."); break; case 4: case 6: case 9: case 11: System.out.print("Month " + month + "th has 30 days."); break; case 2: if (checkYear(year)) { System.out.print("Month " + month + "th has 29 days."); } else { System.out.print("Month " + month + "th has 28 days."); } break; default: System.out.print("Invalid month."); } } }
3. Sử dụng câu lệnh if…else trong Java
Sử dụng câu lệnh if else để kiểm tra các tháng.package numberdayinmonth; import java.util.Scanner; public class NumberDayInMonth { public static boolean checkYear(int nam) { return (nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0; } public static void main(String[] args) { int month, year; Scanner input = new Scanner(System.in); System.out.print("Input month: "); month = input.nextInt(); System.out.print("Input year: "); year = input.nextInt(); if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { System.out.print("Month " + month + "th has 31 days."); } else if (month == 4 || month == 6 || month == 9 || month == 11) { System.out.print("Month " + month + "th has 30 days."); } else if (month == 2) { if (checkYear(year)) { System.out.print("Month " + month + "th has 29 days."); } else { System.out.print("Month " + month + "th has 28 days."); } } else { System.out.print("Invalid month."); } } }
4. Một cách ngắn gọn giúp tìm số ngày trong tháng
Những ví dụ trên sử dụng nhiều câu lệnh System.out.print() để in các ngày trong tháng. Chúng ta có thể tạo 1 biến lưu các trường hợp tháng có 31 ngày, 30 ngày, 29 ngày, 28 ngày như cách bên dưới. Việc này giúp chương trình chỉ cần sử dụng 1 câu lệnh System.out.print() để in số ngày trong tháng.package numberdayinmonth; import java.util.Scanner; public class NumberDayInMonth { public static boolean checkYear(int nam) { return (nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0; } public static void main(String[] args) { int month, year; // cases of month in year int monthcase = 0; boolean validMonth = true; Scanner input = new Scanner(System.in); System.out.print("Input month: "); month = input.nextInt(); System.out.print("Input year: "); year = input.nextInt(); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: monthcase = 3; break; case 4: case 6: case 9: case 11: monthcase = 2; break; case 2: if (checkYear(year)) { monthcase = 1; } else { monthcase = 0; } break; default: System.out.print("Invalid month."); validMonth = false; break; } if (validMonth) { System.out.print("Month " + month + "th has " + (28 + monthcase) + " days."); } } }
Nếu tháng có 31 ngày thì monthcase = 3, tháng có 30 ngày thì monthcase = 2. Nếu năm nhuận và tháng 2 thì monthcase = 1, ngược lại monthcase = 0. Để in các ngày trong tháng ta chỉ cần lấy 28 cộng với monthcase.
- Lớp Reader và Writer trong Java
- Truy vấn (select) dữ liệu và câu lệnh where trong MySQL với Python
- Lớp InputStream và OutputStream trong Java
- Cấu trúc điều khiển vòng lặp for trong Python
- Gỡ rối khi dùng hàm date() trong PHP
Từ khóa » Tính Số Ngày Trong Tháng Java
-
Tính Số Ngày Trong Tháng Bằng Ngôn Ngữ Java - Blog Lợi
-
Java - Nhập Vào Một Tháng Và Hiển Thị Ngày Tương ứng Của Tháng đó.
-
[Thực Hành] Tính Số Ngày Trong Tháng - Học Java
-
Ngày Tháng (Date & Time) Trong Java - Thủ Thuật
-
Java, Tính Số Ngày Giữa Hai Ngày
-
Java 20. Bài Tập Kiểm Tra Số Ngày Của Tháng | Tự Học Lập Trình C
-
Tính Khoảng Cách Giữa 2 Ngày Trong Java - Xây Nhà
-
Tính Ngày Giữa Hai Ngày Với Java [trùng Lặp]? - HelpEx
-
Thư Viện Xử Lý Ngày Tháng Trong Java - Freetuts
-
Java 8 Date And Time API - Viblo
-
Lấy Ngày Giờ Hiện Tại Trong Java | TopDev
-
Tổng Hợp Các Phương Thức Xử Lý Thời Gian Trong Java
-
Xác định Số Ngày Giữa Hai Thời điểm Cho Trước Trong Java. - YouTube