관계, Networking 그리고 Programming

datepicker와 calendar의 month 표시 오류

androbook 본캐 2013. 6. 11. 13:32

아무 생각 없이 DatePicker와 Calendar를 사용해서 UI를 구현해 놓았다가, 테스트를 하는 중 이상한 점을 발견했다.


난 분명 DatePicker에서 5월 16일을 선택했는데, 돌아오는 값은 month = 4, date = 16 인 것이다. 즉, 내가 "m_datePicker.getMonth() 월, m_datePicker.getDayOfMonth() 일" 하는 식으로 화면에 선택된 값을 표기 했을 때 '월' 단위가 하나씩 작게 나타난다.


뭐지? month만 zero base로 계산하나? 뭐지? 에러인가? 라고 생각하고 확인해 보니 다음과 같이, 본래 값이 zero base로 계산되어 있는듯 하다.


public static final int APRIL

Added in API level 1

Value of the MONTH field indicating the fourth month of the year.

Constant Value: 3 (0x00000003)



구글 검색에 누군가 올려 놓은 이런 질문이 있었다. "아니 할거면 년, 월, 일 모두 zero base로 계산하던가, 어째서 월단위만 zero base인거냐?"


그 아래에 답변하신 분은 매우 차분했다. 대략 다음의 내용 : "년과 일에는 이름이 없습니다. 2013년, 1일, 3일, 등등 숫자를 그대로 쓰면 되지만, 월에는 이름이 있습니다. April, May 등등. 월 단위의 이름을 배열로 선언할 때 가장 첫번째 인자의 index0 이 되기 때문에, 숫자와 이름을 효과적으로 인덱싱하기 위해서는 월 단위만 zero base가 될 필요가 있었을 겁니다."









......아하. 그렇네?