Как в java получить все числа месяца?

276
02 июня 2021, 19:40

Всем доброго времени суток! Например, у меня на входе есть String date = "05.2018" (май 2018). Затем я преобразую это все в тип Date. Как мне получить на выходе вот это - 01.05.2018 02.05.2018 ... 31.05.2018 ?

Answer 1

Немного переписал код из этого ответа.

Тут используется LocalDate и DateTimeFormatter из java 8:

LocalDate ld = LocalDate.of(2018, 5, 1);
do {
    System.out.println(ld.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")));
    ld = ld.plusDays(1);
} while (ld.getDayOfMonth() > 1);  // arive at 1st of next month

В консоли:

01.05.2018
02.05.2018
03.05.2018
04.05.2018
...
30.05.2018
31.05.2018

PS.

Строку с датой можно распарсить:

String date = "05.2018";
String[] parts = date.split("\\.");
int year = Integer.parseInt(parts[1]);
int month = Integer.parseInt(parts[0]);
int day = 1;
LocalDate ld = LocalDate.of(year, month, day);
...

PPS.

Двойные слеши нужны в date.split("\\."); для экранирования ., т.к. в split не просто строка-разделитель указывается, а регулярное выражение. Точка . в регулярках является метасимволом, поэтому и нужно экранирование -- чтобы символ считался как есть

Answer 2

Прибавлять по одному дню:

int days = Days.daysBetween(startDate, endDate).getDays();
List<LocalDate> dates = new ArrayList<LocalDate>(days);  // Список дат.
for (int i=0; i < days; i++) {
    LocalDate d = startDate.withFieldAdded(DurationFieldType.days(), i);
    dates.add(d);
}
Answer 3

Просто ради тренировки, решение с использованием потоков:

LocalDate ld = LocalDate.of(2018, 5, 1);
Stream.iterate(ld.withDayOfMonth(1), t -> t.plusDays(1)).limit(ld.lengthOfMonth()).peek(System.out::println).count();
READ ALSO
Проблема SSL Android

Проблема SSL Android

У меня есть проблемаЯ настроил на сервере ларавел на порту 8080

106
Java альтернативная RLE-распаковка

Java альтернативная RLE-распаковка

Есть метод, осуществляющий распаковку строки а-ля 2AB3C в AABCCC

109
EditText изменение данных в модели и применение измененных данных MVP

EditText изменение данных в модели и применение измененных данных MVP

Моя реализация очень похожа на тот что в примере

103
Элементарный пример Retrofit2 JSON android studio

Элементарный пример Retrofit2 JSON android studio

Подскажите, пожалуйста, элементарный пример работы Retrofit2, в сети примеров куча, но все со своими подвохами

104