2021-01-12
특정 날짜에 이메일을 보내거나 문자를 보내는 등의 날짜를 계산하여 로직을 구성해야 하는 경우가 있다. 이러한 경우 어떻게 구현해야 하는지 알아보자.
- 예제
@Test
public void dayTest() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date now = new Date();
Calendar cal = Calendar.getInstance();
//하루씩 더하는 루프
for(int i = 1; i <= 10; i ++) {
cal.setTime(now);
cal.add(Calendar.DATE, i); // 하루더하기
String day = dateFormat.format(cal.getTime());
System.out.println(day);
}
System.out.println();
System.out.println("=======================");
System.out.println();
//하루씩 빼는 루프
for(int i = 1; i <= 10; i ++) {
cal.setTime(now);
cal.add(Calendar.DATE, -i); // 하루빼기
String day = dateFormat.format(cal.getTime());
System.out.println(day);
}
}
Calendar 클래스를 사용하면 손쉽게 위와 같이 날짜를 계산할 수 있다. 위의 예제에서는 단순 날짜 DATE 만 계산했지만, Calendar는 DATE 뿐 아니라 HOUR, AM, PM, MINUTE... 등 자신이 정한 날짜 포맷에 맞게 다양한 형식으로 날짜를 계산할 수 있도록 포맷을 지원해준다.
- 결과창
결과를 보면 위에는 루프의 i 값의 증감에 따라 하루씩 날짜가 증가되며, 아래는 하루씩 감소되는 것을 확인할 수 있다.
메인 이미지 출처 : Photo by Raimond Klavins on Unsplash