관련 이론 및 문법

(DateFormat 클래스 참고)

http://kkikkodev.tistory.com/154


(Date 클래스 참고)

http://kkikkodev.tistory.com/390


문제 의도

35 라인과 42 라인에 들어갈, DateFormat 객체를 생성하고, Date 객체에 하루를 더하는 적절한 코드를 구하는 문제입니다.


답안

B


풀이 방법

주어진 소스코드를 살펴보면, 33 번 라인에, Date d = new Date(0); 문장을 통해서, 1970 년 1 월 1 일 자정을 뜻하는 Date 객체 (매개변수로 0 밀리초를 넘겨서) 를 하나 만들어서, d 변수로 하여금 이를 가리키게 합니다. 34 라인에서는 String 형 변수 ds 에 "December 15, 2004" 를 저장하고, 36 ~ 41 라인에서는, df 객체의 parse 메소드를 호출하면서 매개변수로 ds 객체를 넘기면서, 문자열 형태의 날짜를 실제 Date 객체로 변환하고 있습니다. 이 때 발생할 수 있는 예외 상황에 대비하여, try ~ catch 구문으로 감쌌습니다.


먼저, 35 번 라인에 들어갈 내용은, 37 번에서 사용할 df 변수를 생성하는 부분입니다. df 는 DateFormat 형 변수이므로, DateFormat df = DateFormat.getDateInstance(); 문장으로 생성합니다. DateFormat 클래스 안에는, getDateFormat() 메소드가 존재하지 않으므로, 답안 A 와 C 는 답안 후보에서 제외합니다.


42 번 라인에 들어갈 내용은, 만든 d 객체에 하루를 더하는 내용입니다. 이는, d.setTime((1000 * 60 * 60 * 24) + d.getTime()); 문장을 통해서 처리할 수 있습니다. 먼저, d.getTime() 을 통해서 현재 d 객체의 밀리초를 반환하고, 여기에 1000 (밀리초 -> 초) * 60 (초 -> 분) * 60 (분 -> 시) * 24 (시 -> 일) 을 더합니다. 그 결과를 다시, d.setTime 메소드의 매개변수로 넘기면, 결과적으로, d 객체는 하루를 더하게 되는 것입니다. (참고로, Date 객체에는 setLocalTime, getLocalTime 메소드가 존재하지 않습니다.)


따라서 답안은 B 가 됩니다.


by kkikkodev 2016. 11. 20. 17:09