Как добавить дни к дате в Java - PullRequest
4 голосов
/ 24 марта 2010

Я хочу добавить дни к дате, чтобы получить новую дату в Java. Как этого добиться используя класс Calendar.

Calendar dom = new GregorianCalendar(d, m, y);

является экземпляром моей даты изготовления, и я хочу, чтобы к дате истечения срока действия я прибавил 100 дней к текущей дате и сохранил ее в переменной doe, но не смог этого сделать.

Ответы [ 3 ]

10 голосов
/ 24 марта 2010

Используйте Calendar#add(). Вот начальный пример.

Calendar dom = Calendar.getInstance();
dom.clear();
dom.set(y, m, d); // Note: month is zero based! Subtract with 1 if needed.
Calendar expire = (Calendar) dom.clone();
expire.add(Calendar.DATE, 100);

Если вам нужна большая гибкость и меньше подробного кода, я бы порекомендовал JodaTime .

DateTime dom = new DateTime(y, m, d, 0, 0, 0, 0);
DateTime expire = dom.plusDays(100);
1 голос
/ 10 февраля 2016
    DateFormat formatter = null;
    Date convertedDate = null;
    formatter = new SimpleDateFormat("yyyy-MM-dd");
    try {
        convertedDate = (Date) formatter.parse(pro.getDate().toString());//pro.getDate() is the date getting from database
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Calendar cal = Calendar.getInstance();
    cal.setTime(convertedDate);
    cal.add(Calendar.DATE, 7);
        Date cvdate=cal.getTime();
    if (cvdate.after(new Date())){
 //do Something if you show expire...
}
0 голосов
/ 09 августа 2015

java.time

Теперь, спустя годы, старые классы java.util.Date/.Calendar заменяются новым пакетом java.time в Java 8 и более поздних версиях.

Эти новые классы включают класс LocalDate для представления только даты без времени дня и часового пояса.

LocalDate localDate = LocalDate.of( 2015 , 2 , 3 ) ;
LocalDate later = localDate.plusDays( 100 );

Этот код выше работает для дат. Если вам вместо этого нужно знать точный момент истечения срока действия, то вам нужны время суток и часовые пояса. В этом случае используйте ZonedDateTime class.

ZoneId zone = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = later.atStartOfDay( zone ) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...