
엑셀은 실제로는 윤년이 아닌 1900년을 윤년으로 처리한다. 로터스 1-2-3과 날짜 체계를 맞추기 위해 이어받은 동작으로, 오늘날에도 엑셀에서 존재하지 않았던 1900년 2월 29일을 입력할 수 있다.
마이크로소프트의 엑셀 문제 해결 문서에 따르면 로터스 1-2-3은 날짜 계산을 간편하게 하려고 1900년을 윤년으로 가정했다. 실제로는 윤년이 아니지만, 대부분의 날짜 계산에는 문제가 없었다. 이후 마이크로소프트 멀티플랜과 엑셀도 로터스 1-2-3과 같은 일련 날짜 체계를 사용해 호환성을 유지했다.
마이크로소프트는 현재 이 동작을 고칠 수는 있지만, 이점보다 단점이 크다고 설명한다. 바꾸면 기존 엑셀 문서의 날짜가 거의 모두 하루씩 이동하고, 날짜를 사용하는 수식도 수정해야 한다. WEEKDAY 같은 함수의 결과가 달라져 수식이 잘못 작동할 수 있으며, 날짜를 처리하는 다른 프로그램과의 호환성도 깨진다.
동작을 그대로 두면 문제가 생기는 범위는 1900년 3월 1일 이전 날짜에 대한 WEEKDAY 함수의 잘못된 결과다. 마이크로소프트는 이 시기 날짜를 쓰는 사용자가 많지 않아 문제가 드물다고 설명한다. 이는 과거 프로그램의 오류를 그대로 재현해 호환성을 지키는 ‘버그 대 버그 호환성’의 사례다. 1900년 2월 29일에 관한 설명과 버그 대 버그 호환성에 관한 글에서 관련 내용을 더 볼 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요