[Java] 자바 날짜 더하고 빼는 계산 방법 알아보기.

2021-01-12


Photo by Raimond Klavins on Unsplash

특정 날짜에 이메일을 보내거나 문자를 보내는 등의 날짜를 계산하여 로직을 구성해야 하는 경우가 있다. 이러한 경우 어떻게 구현해야 하는지 알아보자.


- 예제

	@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