Java - Tính năm âm lịch từ năm dương lịch.

Viết chương trình tính năm âm lịch từ năm dương lịch được nhập từ bàn phím.

Bài giải

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

Hướng dẫn thuật toán tính năm âm lịch:

Năm âm lịch = Can + Chi. Vì vậy để tính năm âm lịch từ năm dương lịch ta cần xác định được Can và Chi rồi sau đó ghép lại là xong.

Để xác định được Can ta tìm phần dư của phép chia năm dương lịch cho 10 rồi tra theo bảng sau:

Kết quả năm dương lịch % 10 0 1 2 3 4 5 6 7 8 9
Can tương ứng Canh Tân Nhâm Quý Giáp Ất Bính Đinh Mậu Kỷ

Để xác định được Chi ta tìm phần dư của phép chia năm dương lịch cho 12 rồi tra theo bảng sau:

Kết quả năm dương lịch % 12 0 1 2 3 4 5 6 7 8 9 10 11
Chi tương ứng Thân Dậu Tuất Hợi Sửu Dần Mẹo Thìn Tỵ Ngọ  Mùi

Ví dụ: Ông Nguyễn Văn Bình sinh năm 1962 thì sẽ tương ứng với năm âm lịch là Nhâm Dần.

Sau đây là bải giải của bài tập này.

Bài giải.
package cau_truc_switch_case;

import java.util.Scanner;

public class XacDinhNamAmLich {

	public static void main(String[] args) {
		int year;
		String can = "", chi = "";
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("Nhập vào năm dương lịch: ");
		year = scanner.nextInt();
		
		// Xác định Can
		switch (year % 10) {
			case 0:
				can = "Canh";
				break;
			case 1:
				can = "Tân";
				break;
			case 2:
				can = "Nhâm";
				break;
			case 3:
				can = "Quý";
				break;
			case 4:
				can = "Giáp";
				break;
			case 5:
				can = "Ất";
				break;
			case 6:
				can = "Bính";
				break;
			case 7:
				can = "Đinh";
				break;
			case 8:
				can = "Mậu";
				break;
			case 9:
				can = "Kỷ";
				break;
		}
		
		// Xác định Chi
		switch (year % 12) {
			case 0:
				chi = "Thân";
				break;
			case 1:
				chi = "Dậu";
				break;
			case 2:
				chi = "Tuất";
				break;
			case 3:
				chi = "Hợi";
				break;
			case 4:
				chi = "Tý";
				break;
			case 5:
				chi = "Sửu";
				break;
			case 6:
				chi = "Dần";
				break;
			case 7:
				chi = "Mẹo";
				break;
			case 8:
				chi = "Thìn";
				break;
			case 9:
				chi = "Tỵ";
				break;
			case 10:
				chi = "Ngọ";
				break;
			case 11:
				chi = "Mùi";
				break;
		}
		
		System.out.println("Năm âm lịch tương ứng với năm dương lịch = " + 
				year + " là " + (can + " " + chi));
	}

}
Kết quả sau khi biên dịch chương trình:

ketqua baitapnamamlich PNG

 

Nguồn: freetuts.net

Tham khảo
Java - Xác định thứ tương ứng với số nhập vào từ bàn phím.
Java - Kiểm tra ký tự thường nhập vào là nguyên âm hay phụ âm.
Java - Tính năm âm lịch từ năm dương lịch.
Java - Thực hiện các phép tính cộng, trừ, nhân, chia 2 số nguyên.
Java - Nhập vào một tháng và hiển thị ngày tương ứng của tháng đó.
Java - Viết chương trình cho phép người dùng chọn đáp án đúng (câu hỏi 1)