Как конвертировать месяцы в годы и месяцы в Java - PullRequest
10 голосов
/ 06 июня 2011

Я новичок в Java, и я хочу конвертировать месяцы в годы.Например, если бы у меня было 18 месяцев, а я бы разделил их на 12, у меня было бы 1,5 года, но я бы хотел, чтобы это было 1 год и 6 месяцев.

Спасибо за вашу помощь.

Ответы [ 2 ]

19 голосов
/ 06 июня 2011

Используйте модуль %.

int months = 18;
int years = months / 12; // 1
int remainingMonths = months % 12; // 6
3 голосов
/ 09 августа 2016

java.time

Фреймворк java.time встроен в Java 8 и более поздние версии. Эти классы вытесняют старые проблемные классы даты и времени, такие как java.util.Date, .Calendar и & java.text.SimpleDateFormat. Команда Joda-Time также рекомендует перейти на java.time.

Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений.

Большая часть функциональности java.time перенесена в Java 6 & 7 в ThreeTen-Backport и дополнительно адаптирована для Android в [ThreeTenABP] (https://github.com/JakeWharton/ThreeTenABP).

Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java.time. Здесь вы можете найти некоторые полезные классы, такие как Interval, YearWeek, YearQuarter и другие.

Period

Класс Period отслеживает промежуток времени, не связанный с временной шкалой, в виде лет, месяцев и дней. Обязательно назовите normalized как привычку, чтобы заставить его пересчитать восемнадцать месяцев с точки зрения года и шести месяцев.

Period period = Period.ofMonths( 18 ).normalized();

Извлечь количество лет и месяцев.

int years = period.getYears();
int months = period.getMonths();

Вы можете позвонить toString, чтобы представить это значение в стандартном формате ISO 8601 для «длительностей» : PnYnMnDTnHnMnS. В этом формате P отмечает начало, а T отделяет часть лет-месяцев-дней от части часов-минут-секунд (не имеет значения в случае с этим Вопросом).

String output = period.toString(); 

P1Y6M

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...