가장 심혈을 기울였고 많은 시간을 투자한 작품입니다.
수도 없이 갈아 엎은 결과 오늘과 같은 작품이 탄생했습니다.
가장 힘든 부분은 음력과 절기, 그리고 대체공휴일 부분이었습니다.
공개된 음력관련 소스들도 많고 절기 프로그램 많이 있죠.
가장 정확한것은 한국 천문 연구원에서 발표한 음력 라이브러리입니다.
https://github.com/OOPS-ORG-PHP/KASI-Lunar/tree/master/KASI_Lunar
단점은 양력 기준으로 1391-02-05 부터 2050-12-31 까지 음력만 지원한다는것이죠.
물론 이것으로도 충분합니다. 나중에 필요하면 다시 업데이트하면 되니까요.
그래서 fullcalendar 최신버전을 다운받아 적용하고 루미집사님의 일정관리 프로그램을
다운받아 접목시켰더니 잘돌아가더군요.
https://sir.kr/g5_skin/52296
그런데 절기, 세차, 월건, 일진 등의 정보를 구하고 싶은 욕망이 생겼습니다.
그래서 찾던중 고영창님의 진짜만세력 라이브러리를 발견했습니다.
http://afnmp3.homeip.net/~kohyc
다행이도 김정균님이 고영창님의 델파이/Perl 소스를 php로 변환해둔
사이트를 발견하고 너무 기뻣습니다.
https://github.com/OOPS-ORG-PHP/Lunar
일단 김정균님의 소스로 다시 fullcalendar+일정관리 프로그램에 도전~~
또 성공했습니다. 그런데 한국전문연구원과 비교분석하니 틀린부분이 의외로
많았습니다. 그래서 한국천문연구원 라이브러리도 접목시켜 지원되는 기간동안은
천문연구원 데이터로 음력을 보여주기로 하였습니다.
절기가 틀린 부분이 다수 있는게 마음에 걸려 찝찝해 하던차에
별빛 실험실 김창환님의 엑셀 달력을 우연히 발견헀죠.
http://blueedu.dothome.co.kr/xe/
다른 절기달력과 별반 다를바 없을거라는 생각으로 살펴보니
어라~ 어라~ 희야~~~~~
VB 스크립트만으로 음력, 절기, 일진, 일출몰, 월출몰, 천문현상까지
계산해서 보여주는게 아니겠습니까? 그것도 정확하게 말이죠.
엑셀 안내 시트에는 이렇게 적혀있었습니다.
* 음양력 계산의 정확성을 보증할 수 있는 기간은 BC 1350년부터 AD 3000년 사이입니다.
놀랍지 않습니까? 그래서 김창환님 홈페이지 포럼에 질문을 남겼지요.
php로 포팅해도 되는지? 일정게시판을 제작하여 판매를 해도 되는지?
그래도 된다는 허가를 얻고는 너무기뻐 날밤을 세워가며 포팅 작업을 시작했습니다.
다행이도 제가 VB로 프로그램 개발을 많이 해본 관계로 PHP 포팅 작업은 수월했습니다.
데이터 타입과 몇몇 함수가 달라 결과값이 틀리게 나와 디버깅 시간이 다소 걸렸죠.
심장이식 수술을 한 관계로 무리하면 안되는데 프로그래머들의 습성을 버리지는 못하겠더군요.
거의 일주일정도 걸린것 같네요. 컨디션이 급격히 나빠져 2틀정도 잠만잔적도 있어요.ㅠㅠ
결과적으로 다음과 같은 기능을 구현하는데 성공했습니다. 아직 검증과정은 남았지만요.
1. 표시여부 선택 항목
- 부제목 : 단기, 불기, 세차, 오방색 및 띠, 월이름
- 음력/일진
- 월건 및 일진
- 28수
- 일별띠, 별자리, 꽃말
- 공휴일, 기념일, 절기
- 출몰시각(일출몰, 월출몰) : 출몰시각 선택시 주소로 위도/경도 검색
- 천문현상, 이슬람력
2. 한자표시여부 : 한글, 한자, 둘다
3. 음력 설정
- 한국음력기준 : 체크해제하면 현지 타임존 숫자를 입력해야함
타임존은 팁 공유 게시판에 올려 두었으니 참고 바랍니다.
http://www.okmobile.co.kr/250005/1
- 음력자동계산 : 해제하면 "평기법, 평삭법, 진삭법" 중에 선택하면 됩니다.
- 그레고리력 사용 : 체크 해제하면 "1582년 10월" 이전 달력을 율리우스력으로 표기
가장 중요한 부분이고 가장 힘들었던 부분이 있습니다.
그것은 바로 "대체공휴일" 계산부분이었습니다. 나름 공부도 많이 했고 그것을 적용하려고
몇날 몇일을 고생했습니다.
"대체공휴일 완벽(?)지원!!"
그리고 중요한것 한가지 더 말씀드리자면....
루미집사님의 일정관리 환경설정은 관리자만 가능했었죠.
그런데 이번 작품에는 회원이라면 자신만의 환경 설정을 할 수 있도록 했습니다.
- 작성자명 노출여부와 일정 모두보기 설정은 제외하고 말이죠.
"음력 기념일(윤달 포함) 완벽 (?) 지원!!"
소소한것 중에 하나는 툴팁이 지원됩니다. 공개 스크립트나 스타일 시트를 사용해서
예쁘게 보여주려고 했으나 파일이 늘어나는것을 극도로 싫어해서 제외했습니다.
제목 HTML을 적용하려니 최신 Fullcalendar 라이브러리는 타임일정이 틀어져 나오네요.
그래서 순수한 태그 title 옵션을 사용해서 표시했습니다.
이상 생각나는대로 두서없이 정리해봤습니다.
다음부터는 개발하면서 정리해둬야겠습니다.
끝까지 읽어 주셔서 고맙습니다.
추신 : 김창환님, 고영창님, 루미집사님 소스 공개해 주셔서 너무 감사합니다.
저도 공개를 해야 원칙이나 실업자라 어떻게 할지 고민이 많이 되네요.ㅠㅠ