이 글을 쓰는 목적 중 하나는 '날짜를 다룰 때 Structure Calendar를 활용하는 것이 좋더라'이다. DateFormatter를 사용했더니 속도가 몇 배나 느렸고, 예상하지 못한 에러가 발생하는 경우가 있었다. 달력을 만들다 마주쳤던 정말 황당했던 두 가지 사례를 소개한다.

이슈

1. 1582년 10월 달력 문제

1582년은 율리우스력에서 월요일로 시작하는 평년이다. 교황 그레고리오 13세가 10월 5일부터 14일까지의 10일간을 삭제하고 그레고리력을 사용하기 시작함으로써, 그레고리력을 채용한 국가들에서는 이 해가 355일이 되었고 월요일에 시작하여 금요일에 끝났다.

2. nil을 반환하는 DateFormatter


달력 만들기

달력을 구현하는 부분을 맡았을 때, '달력이란 무엇인가'라는 물음에서 출발했다. 수 많은 종류의 달력과 역법이 있다는 것을 알 수 있었고, 때때로 달력이 60분, 24시간, 1일, 7일이라는 보편적인 규칙을 따르지 않는다는 것을 알게 되었다. 그러자 의문이 생겼다. 만약 누군가가 '오늘부터 1일이야!'라고 공표한다면 나는 만들어 둔 달력을 버리고 처음부터 다시 만들어야 하는 걸까?