카테고리 없음

[Java] Calendar로 오늘 날짜에 7일 더하기

falto 2025. 10. 9. 01:16

1. calendar.add(Calendar.DATE, 7); 을 입력하면 캘린더 날짜에 7일을 더할 수 있다.

2. 날짜를 출력하려면 calendar.get 메소드로 일일이 연도, 월, 일을 구해줘야 하는 것 같다. 참 번거롭다.

3. get 메소드로 MONTH를 받아올 땐 1월이 0, 2월이 1, 3월이 2...에 대응되므로, 날짜 출력 시에 1을 더해줘야 한다.

 

import java.util.Calendar;

public class tmp1 {
    private static void f(Calendar c){
        System.out.println(c);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;
        int day_of_month = c.get(Calendar.DAY_OF_MONTH);
        System.out.printf("%04d-%02d-%02d\r\n\r\n",year,month,day_of_month);
    }

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        f(c);
        c.add(Calendar.DATE, 7);
        f(c);
        c.add(Calendar.DATE, 7);
        f(c);
        c.add(Calendar.DATE, 7);
        f(c);
        c.add(Calendar.DATE, 7);
        f(c);
    }
}

 

출력:

 

java.util.GregorianCalendar[time=1759939981286,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2025,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=282,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=1,HOUR_OF_DAY=1,MINUTE=13,SECOND=1,MILLISECOND=286,ZONE_OFFSET=32400000,DST_OFFSET=0]
2025-10-09

java.util.GregorianCalendar[time=1760544781286,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2025,MONTH=9,WEEK_OF_YEAR=42,WEEK_OF_MONTH=3,DAY_OF_MONTH=16,DAY_OF_YEAR=289,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=1,HOUR_OF_DAY=1,MINUTE=13,SECOND=1,MILLISECOND=286,ZONE_OFFSET=32400000,DST_OFFSET=0]
2025-10-16

java.util.GregorianCalendar[time=1761149581286,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2025,MONTH=9,WEEK_OF_YEAR=43,WEEK_OF_MONTH=4,DAY_OF_MONTH=23,DAY_OF_YEAR=296,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=1,HOUR_OF_DAY=1,MINUTE=13,SECOND=1,MILLISECOND=286,ZONE_OFFSET=32400000,DST_OFFSET=0]
2025-10-23

java.util.GregorianCalendar[time=1761754381286,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2025,MONTH=9,WEEK_OF_YEAR=44,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=303,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,HOUR=1,HOUR_OF_DAY=1,MINUTE=13,SECOND=1,MILLISECOND=286,ZONE_OFFSET=32400000,DST_OFFSET=0]
2025-10-30

java.util.GregorianCalendar[time=1762359181286,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2025,MONTH=10,WEEK_OF_YEAR=45,WEEK_OF_MONTH=2,DAY_OF_MONTH=6,DAY_OF_YEAR=310,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=1,HOUR_OF_DAY=1,MINUTE=13,SECOND=1,MILLISECOND=286,ZONE_OFFSET=32400000,DST_OFFSET=0]
2025-11-06