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:

 

Nguồn: freetuts.net