Java

심이지신 계산하기2

top2blue 2017. 4. 28. 12:18
/*
 * 십이지신을 통틀어 영어로 Chinese Zodiac이라고 한다.
 * 직역하면 "중국식 황도십이궁"인데 십이지신의 기원이 중국이고 
 * 서양 점성술의 기본이되는 황도십이궁(조디악)과 비슷한데서 유래됨
 */
public class ChineseZodiac2 {
	// 십간(十干) 데이터
	final static String[] gan ={"갑", "을", "병", "정", "무", "기", "경", "신", "임", "계"};
	final static String[] hgan = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
	// 십이지(十二支) 데이터
	final static String[] ji = {"자", "축", "인", "묘", "진", "사", "오", "미", "신", "유", "술", "해"};
	final static String[] hji = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};
	// 띠 데이터
	final static String[] ddi = {"쥐", "소", "호랑이", "토끼", "용", "뱀", "말", "양", "원숭이", "닭", "개", "돼지"};
	final static String[] ddiColor = {"푸른", "푸른", "붉은", "붉은", "황금", "황금", "하얀", "하얀", "검은", "검은"};
	
	public static void main(String[] args) {
		/*
		 * 년도의 끝자리가 4로 끝나면 "갑"입니다.
		 * 년도를 10으로 나누었을 때의 나머지가 4이면 "갑"입니다.
		 *  1 2 3 4 5 6 7 8 9 0
		 * 신임계갑을병정무기경
		 * 
		 * 년도를 12로 나누었을 때의 나머지가 0이면 "신"입니다.
		 *  0  1  2  3  4  5  6  7  8  9 10 11  
		 * 신 유 술 해 자 축 인 묘 진 사 오 미
		 */
		for(int y=2000;y<=2050;y++){
			System.out.print(y + " : ");
			System.out.print(hgan[(y-4)%10] + hji[(y-4)%12]);
			System.out.print( "("+ gan[(y-4)%10] + ji[(y-4)%12] + ")");
			System.out.println(" : " + ddiColor[(y-4)%10] + " " + ddi[(y-4)%12]);
		}		
	}

}