0

間の日付が必要な日付の配列が必要だとします

開始日 - 2012 年 9 月 26 日 終了日 - 2012 年 3 月 10 日

diffinDays=7; 私がしていることは

    for(int i=0;i<diffInDays;i++){

        DateArray[i]=StartDate.toString();

        SimpleDateFormat sdf= new SimpleDateFormat("dd/mm/yyyy");
        Calendar c= Calendar.getInstance();
    try {
            c.setTime(sdf.parse(StartDate));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        c.add(Calendar.DATE, 1);
        // number of days to add

        StartDate= sdf.format(c.getTime());  // dt is now the new date
        }   

日付を追加しますが、日付が 2012 年 9 月 30 日の場合、月を追加するにはどうすればよいですか?

4

2 に答える 2

1

日付が の場合、月を追加する必要はありません30/09/2012。カレンダーは、必要な日数を自動的に取得します。forループで変数を管理するだけdiffinDaysで、日付の配列が表示されDateArrayます。このコードを見てください

 String StartDate= "30/09/2012",EndDate="7/10/2012";

    for(int i=0;i<diffinDays;i++){

        DateArray[i]=StartDate.toString();

        SimpleDateFormat sdf= new SimpleDateFormat("dd/mm/yyyy");
        Calendar c= Calendar.getInstance();
    try {
            c.setTime(sdf.parse(StartDate));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        c.add(Calendar.DATE, 1);
        // number of days to add

        StartDate= sdf.format(c.getTime());  // dt is now the new date
        System.out.println(DateArray[i]);
        }
于 2012-10-03T12:43:33.637 に答える
0

Joda-Time

これは Joda-Time の方が簡単です。

DateTimeFormatter formatter = DateTimeFormat.forPattern( "d/M/yyyy" );
LocalDate start = formatter.parseLocalDate( "26/9/2012" );
// loop
LocalDate localDate = start.plusDays( i );
于 2014-06-17T08:03:06.553 に答える