[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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바