Java - Nhập vào một tháng và hiển thị ngày tương ứng của tháng đó.

Bạn hãy nhập vào 1 tháng bất kỳ từ bàn phím, sau đó hiển thị ngày tương ứng của tháng đó. Nếu là tháng 2 thì yêu cầu nhập vào năm: Nếu năm đó là năm nhuận thì có 29 ngày, còn không thì có 28 ngày. Nếu người dùng nhập vào tháng không hợp lệ thì thông báo "Tháng không hợp lệ". 

Bài giải

-------------------- ######## --------------------

Bài giải
package cau_truc_switch_case;

import java.util.Scanner;

public class HienThiNgayCuaThang {

	public static void main(String[] args) {
		int month;
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("Mời bạn nhập tháng: ");
		month = scanner.nextInt();
		
		switch (month) {
			// các tháng 1, 3, 5, 7, 8, 10 và 12 có 31 ngày.
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				System.out.println("Tháng " + month + " có 31 ngày.");
				break;
			
			// các tháng 4, 6, 9 và 11 có 30 ngày
			case 4:
			case 6:
			case 9:
			case 11:
				System.out.println("Tháng " + month + " có 30 ngày.");
				break;
				
			// Riêng tháng 2 nếu là năm nhuận thì có 29 ngày, còn không thì có 28 ngày.
			case 2:
				int year;
				System.out.println("Mời bạn nhập năm: ");
				year = scanner.nextInt();
				if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
					System.out.println("Tháng " + month + " năm " + year + " có 29 ngày.");
				} else {
					System.out.println("Tháng " + month + " năm " + year + " có 28 ngày.");
				}
				break;
			default:
				System.out.println("Nhập tháng không hợp lệ.");
			}
	}

}
Kết quả sau khi biên dịch chương trình: Ở đây tôi nhập vào tháng 2 thì chương trình sẽ yêu cầu tôi nhập vào năm, nếu năm đó thỏa mãn 1 trong 2 điều kiện chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100 thì năm đó là năm nhuận và tháng 2 sẽ có 29 ngày.

 

Nguồn: freetuts.net