Найти количество дней в месяце на Яве - PullRequest
19 голосов
/ 30 марта 2010

Как узнать количество дней в месяце на Java?

Ответы [ 4 ]

36 голосов
/ 30 марта 2010

Установите год и месяц для объекта Calendar, а затем используйте getActualMaximum, чтобы вернуть последний день:

calendar.getActualMaximum(Calendar.DAY_OF_MONTH) 
3 голосов
/ 30 августа 2016

java.time.Month

Используя классы java.time, в частности, перечисление java.time.Month.

int days = Month.FEBRUARY.minLength();  // 28
int days = Month.FEBRUARY.maxLength();  // 29
int days = Month.FEBRUARY.length( boolean_consider_leap_year ); // TRUE → 29, FALSE → 28.

Вы можете получить объект Month для номера месяца, 1-12 означает январь-декабрь.

int monthNumber = Month.FEBRUARY.getValue();

О 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 (см. Как пользоваться… ).

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

2 голосов
/ 16 мая 2018

Начиная с Java 8, простой способ будет:

int daysInCurrentMonth = java.time.LocalDate.now().lengthOfMonth();
0 голосов
/ 30 марта 2010

Похоже на домашнюю работу. Поиск Календарь .

...