Календарь добавляет () по сравнению со списком (), когда мы используем его?

Я знаю add() добавляет указанное количество времени (со знаком) к данному полю времени, на основе правил календаря.

И roll() добавляет указанная единая единица (со знаком) времени на данном поле времени, не изменяя более крупные поля.

Я не могу думать о повседневном использовании roll() Я сделал бы все add().

Можно ли выручить меня с примерами, когда мы используем roll() и когда add()?

РЕДАКТИРОВАНИЕ 1

Ответы Joda не приняты!

52
задан Pentium10 23 March 2010 в 12:46
поделиться

2 ответа

  • add () - почти всегда, как вы сказали
  • roll () - например, вы хотите «распределить» события за один месяц. Алгоритм может заключаться в том, чтобы продолжить несколько дней и разместить событие, а затем продолжить. Когда наступит конец месяца, его следует начать сначала. Следовательно roll () .
52
ответ дан 7 November 2019 в 09:24
поделиться

Найдено в jGuru

  • Calendar.roll ()
    Изменяет конкретную единицу и оставляет «больше» (с точки зрения времени-месяца {{1}) } «больше» дня) без изменений. Пример API: с датой 31 августа 1999 г., переходящий на (Calendar.MONTH, 8) дает 30 апреля 1999 г. То есть ДЕНЬ был изменено на апрельский максимум, но «большая» единица YEAR осталась неизменной.

roll (): здесь 8 месяцев, т.е. добавление 8 месяцев к августу приведет к апрелю, но год останется неизменным (без изменений).

  • Calendar.add ()
    Заставит изменить следующий «более крупный» блок, если потребуется. То есть, учитывая дату 31 августа 1999 г., add (Calendar.MONTH, 8) возвращает 30 апреля 2000 г. add () также вызывает пересчет миллисекунд. и все поля.

add (): добавляет месяцы к текущей дате, т.е. добавление 8 месяцев к августу дает апрель следующего года, следовательно, принудительно изменяет год.

30
ответ дан 7 November 2019 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: