cal.add(cal.DATE, 3);
に電話して、3日後に同じ時刻になることができます。
次のような方法で行うことができます:
public Date getDaysFromNow(int days) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, days);
Date date = java.sql.Date.valueOf(
cal.get(cal.YEAR) + ":" +
cal.get(cal.MONTH) + ":" +
cal.get(cal.DATE));
return date;
}
public Date getCurrentDay() {
return getDaysFromNow(0);
}
編集:あなたも0までの時間を設定し、getTimeInMillis(呼び出すことができることを
注)、すなわち
public Date getDaysFromNow(int days, boolean endOfDay) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, endOfDay ? 23 : 0);
cal.set(Calendar.MINUTE, endOfDay ? 59 : 0);
cal.set(Calendar.SECOND, endOfDay ? 59 : 0);
cal.set(Calendar.MILLISECOND, endOfDay ? 999 : 0);
cal.add(Calendar.DATE, days);
Date date = new java.sql.Date(cal.getTimeInMillis());
return date;
}
を
endOfDayパラメータは、時間を23:59:59,999に設定するために使用され、同じ方法で今日の2つの日付、つまり2011-29-04 00:00:00,000
とを取得できます。
'cal.addことに注意してください(Calendar.DATE、 - 1) 'も昨日の日付を取得するのに有効です。したがって、最初のチェックは "getDaysAheadCurrentDate"の暗黙のセマンティクスを遵守するために必要なだけです(先に進むことを前提としています)。 – Thomas
正しいThomas ...質問の著者によって記述された要件が "days ahead current time"であるため、このメソッドはパラメータnumberOfDaysAheadが正の数であるかどうかを確認します:) –