Вы можете позвонить 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);
}
Edit:
Обратите внимание, что вы также можете установить время на 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, таким образом, вы можете получить две даты на сегодня: 2011-29-04 00:00:00,000
и 2011-29-04 23:59:59,999
одним и тем же методом.