미국에서 미터법을 잘 쓰지 않듯이 국제 표준이 있는데 자국만의 표준을 고집하는 나라들이 있다. 우리가 모든 나라의 문화를 다 이해하지 못하는 상황에서 이를 비난 해서는 안된다. 다만 소프트웨어를 개발하는데 엄청 번거로울 뿐이다. 날짜에서도 전세계 대부분의 나라가 그레고리력을 사용하는데 그레고리력을 사용하지 않는 몇몇 나라가 있다. 물론 그레고리력과 혼용을 하기도 한다.
게다가 달력은 로케일 표준 카테고리에 해당하지 않기 때문에 대부분의 개발툴이나 라이브러리에서 별도로 제공하지 않는다. 개발자가 직접 제공을 해야 하는 경우가 많다.
사실 한국도 19세기까지는 음력을 사용하다가 독자 연호를 거쳐 현재는 그레고리력을 쓴다. 우리나라는 국제 표준을 상당히 잘 따르는 나라 중에 하나다. 오랫동안 써왔던 면적 단위인 “평”을 못 쓰도록 법으로 금지했는데 이렇게 할 수 있는 나라는 그렇게 많지 않을 것이다. 그래도 그런 강제 표준 적용이 소프트웨어 개발에는 더 유리하다.
이렇게 전세계가 완벽하게 그레고리력으로 통일되지 못한 상황에서 소프트웨어가 그레고리력만 제공을 하면 해당 국가에서는 받아들여지기 힘들 수도 있다. 그래서 그레고리력 외에 크게 “불기”와 일본의 “연호”를 제공해야 한다. 그 외에는 여러 가지 달력이 추가로 더 있으니 소프트웨어의 성격에 따라서 추가 지원을 고려해야 한다.
먼저 “불기”를 알아보자. “불기”란 석가모니가 입적(불멸)한 해인 기원전544년을 기준으로 삼는 달력이다. “서기”는 예수의 탄생을 기준으로 삼는데 불교에서는 정반대의 기준을 사용하는 것으로 보아서 문화에 따른 생각의 차이를 엿볼 수 있다.
표준 “불기”로는 올해가 2559년이지만 태국에서는 이보다 1년 늦은 2558년이다. “불기”도 나라별로 약간 다른 것도 소프트웨어에서는 여간 귀찮은 일이 아니다. 또한 태국에서는 그레고리력을 쓰는 사람들도 있기 때문에 그레고리력을 선택할 수도 있도록 해야 한다. 즉, 로케일로 달력을 결정할 수 없고 별도의 설정이 필요하다.
다음은 일본이다. 일본은 일왕에 따른 연호를 사용한다. 올해는 平成27年(헤이세이)이다. 일본 역시 그레고리력도 쓰기 때문에 둘 다 지원을 해야 한다. 일본의 연호를 고려하지 않고 소프트웨어를 개발하게 되면 올해가 2015년이 아니고 0027년으로 처리가 될 수도 있다. 일본은 연도별로 연호가 다르기 때문에 대단히 귀찮은 변경작업을 해줘야 한다. 하지만 연호를 잘 제공하면 그만큼 일본 시장에서 소프트웨어의 품질이 올라갈 것이다.
그 외에 몇 개의 달력을 더 알아보자. 필자도 위의 달력 외에도 아래 소개하는 몇몇 달력 때문에 고생한 적이 있다.
이슬람력은 많은 이슬람 국가에서 사용하고 대부분의 나라에서는 그레고리력과 병기를 한다. 위에서 언급한 불기와 일본의 연호는 연도만 다르고 월과 일은 그레고리력과 같다. 하지만 이슬람력은 태음력을 사용하기 때문에 날짜가 완전히 다르다. 라마단도 이슬람력을 기준으로 한다.
이란과 아프가니스탄에서 사용하는 이란력(페르시아력)도 있다. 이는 태양력이다.
그 외에도 히브리력, 인도 국민력, 에티오피아력, 대한민국 단기, 음력, 북한의 주체연호가 있다. 대부분은 그레고리력과 병기를 한다.
어떤 달력을 지원하던지 날짜의 변환 작업과 날짜 선택기를 제공해야 한다. 그레고리력 날짜 선택기를 쓸 수 없는 달력들이 있다.
소프트웨어를 개발할 때 달력을 어디까지 제공할지는 소프트웨어의 성격과 판매하려는 지역과 전략에 따라서 매우 달라진다. 우리가 각 나라들의 문화를 다 알지 못하는 상황에서 무조건 그레고리력을 써야 한다고 주장하는 것은 소프트웨어 판매에 걸림돌이 될 수도 있고 그렇다고 모든 달력을 제공하는 것은 배보다 배꼽이 더 클 수도 있다. 전략에 따라서 적절히 판단을 해야 한다.