Я верю , Архитектор Предприятия может сделать это.
Объект Calendar
имеет метод add
, который позволяет добавлять или вычитать значения указанное поле.
Например,
Calendar c = new GregorianCalendar(2009, Calendar.JANUARY, 1);
c.add(Calendar.DAY_OF_MONTH, 1);
Константы для указания поля можно найти в «Сводке поля» класса Calendar
.
Для справки в будущем, Спецификация Java API содержит много полезной информации о том, как использовать классы, которые являются частью Java API.
Обновление: ожидаемый int, в 'newDay = startDate.add (5, 1); ' Что я должен do?
Метод add
ничего не возвращает, поэтому попытка присвоить результат вызова Calendar.add
недопустима.
Ошибка компилятора указывает на то, что пытается присвоить void
переменной с типом int
. Это неверно, так как нельзя присвоить «ничего» переменной int
.
Просто предположение, но, возможно, это может быть то, чего пытаются достичь:
// Get a calendar which is set to a specified date.
Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
// Get the current date representation of the calendar.
Date startDate = calendar.getTime();
// Increment the calendar's date by 1 day.
calendar.add(Calendar.DAY_OF_MONTH, 1);
// Get the current date representation of the calendar.
Date endDate = calendar.getTime();
System.out.println(startDate);
System.out.println(endDate);
Вывод:
Thu Jan 01 00:00:00 PST 2009
Fri Jan 02 00:00:00 PST 2009
Необходимо учитывать то, чем на самом деле является Календарь
.
Календарь
не является представлением даты. Это представление календаря и его текущее положение. Чтобы получить представление о том, на что календарь указывает в данный момент,
Если вы можете изменить это требование с умом, переместите всю необходимую дату / время в JODA, которая является гораздо лучшей библиотекой, с дополнительным бонусом, заключающимся в том, что почти все неизменяемо, что означает многопоточность. бесплатно.