package kr.baeoom.util;
public class CalendarUtil {
public static boolean isLeapYear(int year){ // 윤년인지를 알려주는 메서드
return (year%400==0 || year%4==0 && year%100!=0);
}
public static int getLastday(int year, int month){ // 지정 년월의 마지막 날짜를 구해주는 메서드
int m[] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 월의 마지막 날짜
m[1] = isLeapYear(year) ? 29 : 28;
return m[month-1];
}
public static int getSumday(int year,int month,int day){ // 지정 년월일까지 총일수를 구해주는 메서드
int sumday = (year-1)*365 + (year-1)/4 - (year-1)/100 + (year-1)/400; // 전년도까지의 일수
for(int i=1;i<month;i++) sumday += getLastday(year, i); // 전월까지 일수
sumday += day; // 일수
return sumday;
}
public static int getWeekday(int year,int month,int day){ // 지정 년월일의 요일을 구해주는 메서드
return getSumday(year, month, day)%7;
}
public static String getGanjiH(int year){
String[] gan = "甲(갑),乙(을),丙(병),丁(정),戊(무),己(기),庚(경),辛(신),壬(임),癸(계)".split(",");
String[] ji = "子(자),丑(축),寅(인),卯(묘),辰(진),巳(사),午(오),未(미),辛(신),酉(유),戌(술),亥(해)".split(",");
// 요약하면 연도에서 4을 뺀 숫자의 끝자리가 10간,
// 연도에서 4을 뺸 후 12로 나눈 숫자의 나머지가 12지입니다.
int ganIndex = (year-4)%10;
int jiIndex = (year-4)%12;
return gan[ganIndex].charAt(0) +""+ ji[jiIndex].charAt(0);
}
public static String getGanjiK(int year){
String[] gan = "甲(갑),乙(을),丙(병),丁(정),戊(무),己(기),庚(경),辛(신),壬(임),癸(계)".split(",");
String[] ji = "子(자),丑(축),寅(인),卯(묘),辰(진),巳(사),午(오),未(미),辛(신),酉(유),戌(술),亥(해)".split(",");
// 요약하면 연도에서 4을 뺀 숫자의 끝자리가 10간,
// 연도에서 4을 뺸 후 12로 나눈 숫자의 나머지가 12지입니다.
int ganIndex = (year-4)%10;
int jiIndex = (year-4)%12;
return gan[ganIndex].charAt(2) +""+ ji[jiIndex].charAt(2);
}
public static String getDdi(int year){
String[] gan = "甲(갑),乙(을),丙(병),丁(정),戊(무),己(기),庚(경),辛(신),壬(임),癸(계)".split(",");
String[] ji = "子(자),丑(축),寅(인),卯(묘),辰(진),巳(사),午(오),未(미),辛(신),酉(유),戌(술),亥(해)".split(",");
String[] ddi = "쥐,소,호랑이,토끼,용,뱀,말,양,원숭이,닭,개,돼지".split(",");
String[] color = "청,청,적,적,황,황,백,백,흑,흑".split(",");
// 요약하면 연도에서 4을 뺀 숫자의 끝자리가 10간,
// 연도에서 4을 뺸 후 12로 나눈 숫자의 나머지가 12지입니다.
int ganIndex = (year-4)%10;
int jiIndex = (year-4)%12;
return gan[ganIndex].charAt(2) +""+ ji[jiIndex].charAt(2)+
"," + color[ganIndex] + "" + ddi[jiIndex] ;
}
public static void main(String[] args) {
for(int i=2000;i<=2050;i++){
System.out.println(i + " : " + getDdi(i));
}
}
}