반응형
SimpleDateFormat, Calendar 클래스를 이용하여 특정 날짜에서 더하거나 뺀 날짜를 구할 수 있다.
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateAdd {
public static void main(String[] args) throws Exception{
String date = "20200801";
//1년 후 날짜
String addYear = AddDate(date, 1, 0, 0);
//1달 후 날짜
String addMonth = AddDate(date, 0, 1, 0);
//1일 후 날짜
String addDay = AddDate(date, 0, 0, 1);
System.out.println(addYear); //20210801
System.out.println(addMonth); //20200901
System.out.println(addDay); //20200802
}
private static String AddDate(String strDate, int year, int month, int day) throws Exception {
SimpleDateFormat dtFormat = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
Date dt = dtFormat.parse(strDate);
cal.setTime(dt);
cal.add(Calendar.YEAR, year);
cal.add(Calendar.MONTH, month);
cal.add(Calendar.DATE, day);
return dtFormat.format(cal.getTime());
}
}
위의 예제와 같이 Calendar 객체의 add() 메서드를 사용하면 원하는 날짜를 계산할 수 있다.
만약 특정일 기준으로 원하는 날짜만큼 빼려면 원하는 만큼의 년, 월, 일에 -(마이너스)를 붙여 add 메서드 파라미터에 세팅한다.
//year 년 전
cal.add(Calendar.YEAR, -year);
//month 월 전
cal.add(Calendar.MONTH, -month);
//month 일 전
cal.add(Calendar.DATE, -day);
어제 날짜 구하기(일 년 전, 한 달 전)
//위의 메소드에 적용하면 다음과 같이 파라메터를 세팅하면된다.
//일년 전
AddDate(date, -1, 0, 0);
//한달 전
AddDate(date, 0, -1, 0);
//하루 전
AddDate(date, 0, 0, -1);
'개발언어 > JAVA' 카테고리의 다른 글
[JAVA] 자바 날짜 포맷 변경 방법(SimpleDateFormat) yyyyMMdd (1) | 2020.08.06 |
---|---|
[JAVA] 람다식(Lambda Expressions)이란? 사용방법 & 장단점 (0) | 2020.08.04 |
[JAVA] 제네릭(Generic)이란? 제네릭 사용 방법과 예제 정리 (0) | 2020.08.01 |
[JAVA] ArrayList를 이용하여 Stack, Queue 구현하기 (1) | 2020.03.17 |
[JAVA]자바 변수란 무엇인가? (0) | 2020.03.12 |
댓글