Java
달력유틸
top2blue
2017. 7. 4. 18:19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 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)); } } } | cs |