У меня есть этот код, который правильно возвращает номер недели.
package org.test.Calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GetDaysInMonth {
public static void main(String[] args) {
Calendar calendar = GregorianCalendar.getInstance();
int year = 2020;
int month = Calendar.MAY;
int date = 1;
calendar.set(year, month, date);
int numOfDaysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int numOfWeeksInMonth = calendar.getActualMaximum(Calendar.WEEK_OF_MONTH);
System.out.println("Number of Days In Month: " + numOfDaysInMonth);
System.out.println("Number of Weeks In Month: " + numOfWeeksInMonth);
}
}
Выход :
Количество дней в месяце: 31
Количество недель в месяце: 6
Мой формат даты был:
Теперь, когда я меняю формат даты на:
Выход разный.
Выход :
Количество дней в месяце: 31
Количество недель в месяце: 4
Нужны входные данные, такие как как я могу получить правильный вывод независимо от того, какой формат даты мы используем?
Отвечая на вопрос, как я обновляю формат: а) Перейдите в Панель управления -> Часы и регион
b) Выберите ссылку Изменить дату, время или числовой формат. Вы получите всплывающее окно ниже, просто измените формат.
Calendar
иGregorianCalendar
. Эти классы плохо разработаны и давно устарели. Вместо этого используйтеLocalDate
и другие классы из java.time, современного API даты и времени Java. - person Ole V.V.   schedule 01.05.2020calendar.getActualMaximum(Calendar.WEEK_OF_MONTH)
. Как вы считаете недели? Хотите узнать, сколько разных номеров недель может быть в месяце? Также это отличается между США и Великобританией. - person Ole V.V.   schedule 01.05.2020