728x90
앱에서 양력을 음력으로 변환하는 방법을 찾은 결과
중국에서 사용하는 음력 라이브러리를 이용하여 사용하는 방법과
공공데이터 포탈 사이트에서 [한국천문연구원_음양력 정보] 데이터를
이용하여 OpenAPI형식으로 받아 올 수 있었다.
중국에서 사용하는 음력의 경우 한국과 맞지 않다는 글도 있어 포기하고
공공데이터 포탈에서 OpenAPI형식으로 받아오는 경우는 해당 일자 하루값만
음력으로 받아와서 여러일자의 음력날짜를 받아올 경우 계속 값을 던져야 하는 문제가 있었다.
그러던 중 github에 한국 양음력 변환을 도와주는 소스를 구하여 해당 내용을 공유한다.
해당 github 정보 주소를 아래와 같다.
https://github.com/usingsky/KoreanLunarCalendar/blob/master/README.md
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
'Programing > android' 카테고리의 다른 글
[android studio] DatePickerDialog로 일자달력 사용하기 (0) | 2021.10.11 |
---|---|
[android studio] Geocoder 이용하여 위도, 경도 이용하여 주소가져오기 (0) | 2021.10.09 |
[android studio] SimpleDateFormat를 이용하여 현재 일자 구하기 (0) | 2021.10.08 |
[android studio] 현재위치 가져오기, Location , LocationManager (0) | 2021.10.05 |
[android studio] 앱바(App Bar) 설정값 (0) | 2021.10.02 |
댓글