본문 바로가기
Programing/android

[android studio] 한국 양력 음력 변환하기

by TEXTBOX 2021. 10. 8.
728x90

앱에서 양력을 음력으로 변환하는 방법을 찾은 결과

중국에서 사용하는 음력 라이브러리를 이용하여 사용하는 방법과

공공데이터 포탈 사이트에서 [한국천문연구원_음양력 정보] 데이터를

이용하여 OpenAPI형식으로 받아 올 수 있었다.

 

중국에서 사용하는 음력의 경우 한국과 맞지 않다는 글도 있어 포기하고

공공데이터 포탈에서 OpenAPI형식으로 받아오는 경우는 해당 일자 하루값만

음력으로 받아와서 여러일자의 음력날짜를 받아올 경우 계속 값을 던져야 하는 문제가 있었다.

 

그러던 중 github에 한국 양음력 변환을 도와주는 소스를 구하여 해당 내용을 공유한다.

 

 

해당 github 정보 주소를 아래와 같다.

https://github.com/usingsky/KoreanLunarCalendar/blob/master/README.md

 

GitHub - usingsky/KoreanLunarCalendar: Libraries to convert Korean lunar-calendar to Gregorian calendar written in java

Libraries to convert Korean lunar-calendar to Gregorian calendar written in java - GitHub - usingsky/KoreanLunarCalendar: Libraries to convert Korean lunar-calendar to Gregorian calendar written in...

github.com

 

Readme파일의 overview를 살펴보니 아래와 같은 내용이 있었다.

참조하면 좋을 것 같았다.

한국 양음력 변환 (한국천문연구원 기준) - 네트워크 연결 불필요
음력 변환은 1391년 1월 1일 부터 2050년 11월 18일까지 지원

 

 

해당 사이트에서 KoreanLunarCalendar.java파일을 다운받아 해당 java 파일을 생성해준뒤에

양력에서 음력으로 전환이나

음력에서 양력으로 전환시 아래 코드와 같이 간단히 처리 가능해졌다.

아래 샘플코드는 github에 등록된 KARI(한국천문연구원) 제공 샘플코드이다.

Sample code

양력 2017년 6월 24일을 음력으로 변환
KoreanLunarCalendar calendar = KoreanLunarCalendar.getInstance();

// param : year(년), month(월), day(일)
calendar.setSolarDate(2017, 6, 24);

// Lunar Date (ISO format)
System.out.println(calendar.getLunarIsoFormat());
// Korean GapJa String
System.out.println(calendar.getGapjaString());
// Chinese GapJa String
System.out.println(calendar.getChineseGapJaString());

 

[Result]
2017-05-01 Intercalation
정유년 병오월 임오일 (윤월)
丁酉年 丙午月 壬午日 (閏月)

 

음력 1956년 1월 21일을 양력으로 변환
// param : year(년), month(월), day(일), intercalation(윤달여부)
calendar.setLunarDate(1956, 1, 21, false);

// Solar Date (ISO format)
System.out.println(calendar.getSolarIsoFormat());
// Korean GapJa String
System.out.println(calendar.getGapjaString());
// Chinese GapJa String
System.out.println(calendar.getChineseGapJaString());

 

[Result]
1956-03-03
병신년 경인월 기사일
丙申年 庚寅月 己巳日

 

728x90

댓글