0

翌週の最初の日 (次の月曜日) を取得したいのですが、呼び出すとgetTime()Calendar オブジェクトが変更されます。

次の週の最初の曜日を取得する正しい方法を教えてください。

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Main {
    public static void main(String[] args) {
        {
            final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            final Calendar cal = new GregorianCalendar( 2013, 5, 6 );
            cal.setFirstDayOfWeek( Calendar.MONDAY );
            //System.out.println( sdf.format( cal.getTime() ) );
            cal.set( Calendar.DAY_OF_WEEK,  Calendar.MONDAY );
            System.out.println( sdf.format( cal.getTime() ) );  // 2013-06-06
            cal.add( Calendar.WEEK_OF_YEAR, 1 );
            System.out.println( sdf.format( cal.getTime() ) );  // 2013-06-13
        }
        {
            final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            final Calendar cal = new GregorianCalendar( 2013, 5, 6 );
            cal.setFirstDayOfWeek( Calendar.MONDAY );
            System.out.println( sdf.format( cal.getTime() ) );  // 2013-06-06
            cal.set( Calendar.DAY_OF_WEEK,  Calendar.MONDAY );
            System.out.println( sdf.format( cal.getTime() ) );  // 2013-06-03
            cal.add( Calendar.WEEK_OF_YEAR, 1 );
            System.out.println( sdf.format( cal.getTime() ) );  // 2013-06-10
        }
    }
}
4

1 に答える 1