본문 바로가기
프로젝트/음력달력

Flutter 음력변환 패키지 `Lunar` 이용후기 - pub.dev

by 반포한강공원 2026. 3. 17.
반응형

 

https://pub.dev/

 

The official repository for Dart and Flutter packages.

Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter and general Dart programs.

pub.dev

 

pub.dev

뜬금 없이 pub.dev 다.

flutter라는 이름이 하나도 안 들어가 있다.

공식사이트가 flutter.dev 이면, pub.flutter.dev 정도는 되어야 하지 않나?

 

암튼 이게 flutter의 "공식 패키지 저장소"이다.

커스텀 캘린더, 리스트뷰, 스크롤바 같은 컴포넌트를 다운받을 수 있다.

Java 면 gradle 로 다운 받을텐데, 이건 pubspec.yml 에 쓰면 된다.

`flutter pub get` 이라고 명령을 쳐야 하지만...

 

vscode면 자동으로 다운받아 준다.

vscode가 똑똑해서 그렇다.

 

언제 쓰냐?

"음력 달력" 같은 거 만들 때 쓴다.

음력 변환을 해야 하는데, 이거 맨땅에 짜려면 복잡하다.

음력 매칭은 규칙이 없어, 사람손으로 보정값을 넣어야 하기 때문이다.

보통 행렬값으로 99년치 정도를 넣는다.

아주 길다란 Array를 만들어야 하는거다.

 

Lunar

그런데, `Lunar` 패키지를 import 하면, 변환함수를 불러 쓸 수 있다.

Lunar date = Lunar.fromYmd(1986, 4, 21);

이 정도를 쓰면 된다.

https://pub.dev/packages/lunar

 

이거 중국친구가 만들었다.

공식 사이트는 여기다.

https://6tail.cn/calendar/api.html

 

써보니 좋다.

다만, 절기가 우리나라와 안맞는다.

조금 틀리다.

중국 절기는 "북경"을 기준으로 하기 때문이다.

 

음력은 번거롭다.

29, 30일이 번갈아가면 있는데, 윤달이 끼어있기 때문이다.

윤달을 끼우는 패턴은 얼추 정해져 있긴 한데 꼭 룰대로 가진 않는다.

"무중치윤법"이라고 "절기"와 "중기"가 없는 달을 골라 붙이기 때문이다.

그런데, 그런 날을 100년씩 계산하기 힘드니, 보통 매년 달라지고 책력을 통해 배포한다.

 

암튼 그러니, 코딩 룰대로 잘 될리 없다.

누군가 한 명이 기초 데이터를 노가다 해놓은 걸 가져다 쓰는 게 훨씬 유리하다.

 

Flutter로 음력환산을 해야 한다면,

`Lunar` 패키지 추천한다.

사용법 익히기 어렵지 않다.

ChatGPT 에게 익혀보라고 주면, 금방 사용법을 익힌다.

 

끝.

 

 

반응형

댓글