[JAVA] 음력 양력 변환 라이브러리

2023. 9. 20. 13:25·JAVA

1.  음력변환 라이브러리 추가

설, 추석과 같은 음력 공휴일을 처리하기 위해 음력변환 라이브러리를 추가해 준다.

 <!-- https://mvnrepository.com/artifact/com.ibm.icu/icu4j -->
        <dependency>
            <groupId>com.ibm.icu</groupId>
            <artifactId>icu4j</artifactId>
            <version>4.0.1</version>
        </dependency>

 

1.  음력 공휴일 체크

아래는 음력 공휴일을 체크하는 소스이다.

 

import com.ibm.icu.util.Calendar;
import com.ibm.icu.util.ChineseCalendar;


public class HolidayCheck {
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		// 체크할 양력날짜
		String dt = "2014-09-09" ;
		
		
		try {
			
			// 결과값 출력
			System.out.println(isLunar(dt)) ;
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		

	}
    
    private static boolean isLunar(String dt) throws Exception{
		
		boolean result = false ;
		
		
		// 음력 공휴일 목록
		String[] arrLunar = {
				
				"01-01"		// 설날 2 
				, "01-02"	// 설날 3
				, "04-08"	// 부처님 오신날
				, "08-14"	// 추석 1
				, "08-15"	// 추석 2
				, "08-16"	// 추석 3
				, "12-31"	// 설날 1
		} ;
		
		
		
		ChineseCalendar chinaCal = new ChineseCalendar();
		Calendar cal = Calendar.getInstance() ;
		
		cal.set(Calendar.YEAR, Integer.parseInt(dt.substring(0, 4)));
		cal.set(Calendar.MONTH, Integer.parseInt(dt.substring(5, 7)) - 1);
		cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dt.substring(8,10)));
		chinaCal.setTimeInMillis(cal.getTimeInMillis());
		

		int chinaYY = chinaCal.get(ChineseCalendar.EXTENDED_YEAR) - 2637 ;
		int chinaMM = chinaCal.get(ChineseCalendar.MONTH) + 1;
		int chinaDD = chinaCal.get(ChineseCalendar.DAY_OF_MONTH);
		
		
		
		
		String chinaDate = "" ;		// 음력 날짜
		
        
		if(chinaDD < 10)			// 일
			chinaDate += "0" + Integer.toString(chinaDD) ;
		else
			chinaDate += Integer.toString(chinaDD) ;
		
		
		
		// 음력 공휴일 목록과 변환한 음력날짜가 일치하는지 비교
		for(int i=0; i < arrLunar.length; i++){
			String tmpLunar = arrLunar[i] ;
			
			if(tmpLunar.equals(chinaDate)){
				result = true ;
				
			}

		}
		
		return result ;
		
	}

}
저작자표시 (새창열림)

'JAVA' 카테고리의 다른 글

[JAVA] 쿠키와 세션  (0) 2023.10.19
[JAVA]GET과 POST  (2) 2023.10.18
[JAVA] ifelse(3)  (0) 2023.04.16
[JAVA] ifelse(2)  (0) 2023.04.16
[JAVA] ifelse를 이용한 짝수, 홀수 판별  (0) 2023.04.16
'JAVA' 카테고리의 다른 글
  • [JAVA] 쿠키와 세션
  • [JAVA]GET과 POST
  • [JAVA] ifelse(3)
  • [JAVA] ifelse(2)
whkim98
whkim98
꾸준히 내 것으로 만드는 게시글을 작성하자
  • whkim98
    내 일기장
    whkim98
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • Project
        • Insty
        • ERP
      • Cloud
        • NAVER CLOUD Web DevOps
        • Public
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
        • 리눅스마스터
        • AWS
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
      • DevOps
  • 블로그 메뉴

    • 홈
    • GitHub
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    코테
    annotation
    Tomcat
    프로그래머스
    정보처리기사
    코딩
    js
    CORS
    html
    node
    해시 암호화
    Python
    Postman
    SQLD
    React
    spring
    git
    AWS
    github
    AdSP
    web
    javascript
    Java
    RDBMS
    gitbash
    코딩테스트
    eGov
    jsp
    Cloud
    django
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
whkim98
[JAVA] 음력 양력 변환 라이브러리
상단으로

티스토리툴바