ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 달력유틸
    Java 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


    'Java' 카테고리의 다른 글

    음력읽기  (0) 2017.07.04
    음력  (0) 2017.07.04
    심이지신 계산하기2  (0) 2017.04.28
    십이지신 계산하기1  (0) 2017.04.28
    JDK설치하기  (0) 2016.09.09

    댓글

Designed by Tistory.