1 ~ 5 라인
예제에 필요한 class 들을 import 하는 문장입니다.
9 라인
SimpleDateFormat 객체를 생성할 때 필요한 날짜 패턴 상수입니다. 저는 편의상 "yyyy-MM-dd" 로 지정하였습니다. 입맞에 맞게 변행해서 사용하시면 됩니다.
10 ~ 11 라인
두 날짜 문자열입니다. 7 라인에서 지정한 날짜 패턴의 형태로 두 날짜를 지정해 주면 됩니다. 기본적으로 시작 날짜보다 끝 날짜보다 이전일 수 없다고 가정하겠습니다. 현재 예제에서는 시작 날짜와 끝 날짜를 포함한 그 사이의 모든 날짜들을 구하는 것이 목적입니다.
12 라인
String 형태의 날짜를 Date 형태의 날짜로 편하게 변환하기 위해서 필요한 SimpleDateFormat 객체를 "yyyy-MM-dd" 패턴으로 생성합니다.
13 ~ 14 라인
SimpleDateFormat 객체의 parse 메소드를 통해서 10 ~ 11 라인의 두 String 형태의 날짜를 Date 형태의 날짜로 변경합니다. 이 parse 메소드는 ParseException 을 throws 하고 있습니다. 이 예제에서는 예외 처리가 중심이 아니기 때문에 저 또한 8 라인의 throws ParseException 구문을 통해서 예외 처리를 회피하도록 하겠습니다.
15 라인
날짜들을 저장할 빈 ArrayList 객체를 생성합니다.
16 ~ 23 라인
시작 날짜부터 시작하여 끝 날짜까지 하루씩 증가시키면서 ArrayList 에 날짜를 문자열로 변환하여 저장합니다.
16 라인
currentDate 로 시작 날짜를 가리킵니다.
17 라인
Date 객체의 compareTo 메소드를 통해서 두 날짜의 크기를 비교합니다. X.compareTo(Y) 의 형태로 사용하며, 결과는 1, 0, -1 3 가지 중 하나로 반환됩니다. 1 은 X > Y, 0 은 X == Y, -1 은 X < Y 의 경우라고 보면 됩니다. 이 메소드는 두 Date 객체를 밀리세컨드 기준으로 크기를 비교합니다. currentDate.compareTo(endDate) <= 0 의 의미는 currentDate <= endDate 의 의미라고 보면 됩니다. 즉, currentDate 가 끝 날짜를 넘지 않는 동안 반복하라는 이야기입니다.
18 라인
SimpleDateFormat 객체의 format 메소드를 통해서 currentDate Date 객체를 String 객체로 변환하여 ArrayList 에 추가합니다.
19 ~ 22 라인
현재 날짜와 시간을 가지는 Calendar 객체를 만들어서 Calendar 객체의 setTime 메소드를 통해 currentDate 를 설정합니다. 그리고 add 메소드를 통해서 원하는 필드에 원하는 수를 더할 수 있는데, add(Calendar.DAY_OF_MONTH, 1) 문장을 통해서 일자 (Calendar.DAY_OF_MONTH) 에 1 을 더합니다. 그리고 getTime 메소드를 통해서 Calendar 객체에 설정된 시간 및 날짜를 Date 형태로 가져와서 currentDate 가 이를 가리키게 합니다.
24 ~ 26 라인
시작 날짜와 끝 날짜를 포함한 그 사이의 모든 날짜 문자열들이 저장되어 있는 dates ArrayList 의 모든 요소들을 전체 출력합니다.
문자열 형태의 시작 날짜와 끝 날짜 사이의 날짜들 구하기 (시작, 끝 날짜 포함)
이번에는, 문자열 형태의 두 날짜 사이에 존재하는 날짜들을 구하는 예제 (시작 날짜와 끝 날짜 포함) 를 설명드리겠습니다. import java.text.ParseException; import java.text.SimpleDateFormat; import java.u..
kkikkodev.tistory.com
docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
SimpleDateFormat (Java Platform SE 8 )
Parses text from a string to produce a Date. The method attempts to parse text starting at the index given by pos. If parsing succeeds, then the index of pos is updated to the index after the last character used (parsing does not necessarily use all charac
docs.oracle.com
docs.oracle.com/javase/8/docs/api/java/util/Date.html
Date (Java Platform SE 8 )
The class Date represents a specific instant in time, with millisecond precision. Prior to JDK 1.1, the class Date had two additional functions. It allowed the interpretation of dates as year, month, day, hour, minute, and second values. It also allowed t
docs.oracle.com
'STUDY_NOTE > java' 카테고리의 다른 글
ModelAndView(controller) (0) | 2021.04.13 |
---|---|
StringBuffer 자료형 (0) | 2021.04.09 |
자바 문자열 비교 함수 compare(), compareTo() (0) | 2021.04.09 |
HttpURLConnection 사용시 참고 (0) | 2021.03.12 |
java util (0) | 2021.03.11 |