Javaで日付に30日を追加する 質問する

Javaで日付に30日を追加する 質問する

今日の日付に 30 日を加えると今日の日付 - 30 になり、20 を加えると追加されるのはなぜですか?

ここにサンプルがあります

import java.text.DateFormat;
import java.util.Date;

public class DatePlus
{

    public static void main(String[] args)
    {
        Date now = new Date();
        Date now1 = new Date();
        Date now2 = new Date();
        DateFormat currentDate = DateFormat.getDateInstance();

        Date addedDate1 = addDays(now2, 20);
        Date addedDate2 = addDays(now1, 30);
        System.out.println(currentDate.format(now));
        System.out.println(currentDate.format(addedDate1));
        System.out.println(currentDate.format(addedDate2));
    }

    public static Date addDays(Date d, int days)
    {
        d.setTime(d.getTime() + days * 1000 * 60 * 60 * 24);
        return d;
    }
}

「これがコンソールです」

Jul 30, 2012
Aug 19, 2012
Jul 10, 2012

ベストアンサー1

カレンダーを使用します。http://docs.oracle.com/javase/6/docs/api/java/util/GregorianCalendar.html

疑似コード:

Calendar c= Calendar.getInstance();
c.add(Calendar.DATE, 30);
Date d=c.getTime();

おすすめ記事