Jak mówi tytuł, tworząc java.util.GregorianCalendar obiekt, powiedzmy, kalendarz, i działaKalendarz Java.DAY_OF_WEEK_IN_MONTH maksymalna wartość to 6. Czy to prawda?
calendar.getMaximum(Calendar.DAY_OF_WEEK_IN_MONTH)
zwraca 6! Zgodnie z moją wiedzą, powinno to wynosić 5, ponieważ calendar.getMaximum(Calendar.DAY_OF_MONTH)
wynosi 31 i 31/7 == 4 z resztą, tj. Istnieje maksymalnie 5 tygodni, a zatem dzień może wystąpić najwyżej 5 razy w miesiącu.
Czy tu czegoś brakuje?
Czy masz na myśli to, że nic nie wskazuje na to, że wartość 6 wskazywałaby tydzień po DAY_OF_WEEK_IN_MONTH 5? (zgodnie z poczuciem javadocsa * DAY_OF_WEEK_IN_MONTH 0 oznacza tydzień przed DAY_OF_WEEK_IN_MONTH 1 *, który, moim zdaniem, i tak nie jest dobrze napisany) – user2435660
@ user2435660 Mam na myśli to, że nic nie wskazuje na to, że to pole zostanie kiedykolwiek przypisane wartości większej niż 5. Jeśli na przykład wywołasz 'add (DAY_OF_WEEK_IN_MONTH, amount)', nie ma znaczenia, jaka jest maksymalna wartość - po prostu dodaje/odejmuje "kwotę * 7 dni". – Mifeet