3

アプリでカスタムカレンダーを使用しています。次のような週の最初の曜日を選択するオプションをユーザーに提供しました。Saturday, Sunday, Monday

1か月の週数を取得したいのですが、週の開始時刻に応じて、週の開始のデフォルト値を上書きしますSunday

コード:

public int getWeeksOfMonth(int year, int month) { 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.MONTH, month-1);
    calendar.set(Calendar.YEAR, year);
    int numOfWeeksInMonth = calendar.getActualMaximum(Calendar.WEEK_OF_MONTH); 

    return numOfWeeksInMonth;
}
4

3 に答える 3

3

最初に週の最初の日を設定してみてください。

Calendar.setFirstDayOfWeek()

于 2012-10-01T15:26:07.800 に答える
2

試す

calendar.setFirstDayOfWeek(Calendar.MONDAY); //sets first day to monday, for example.

あなたの場合、あなたはこれをしたいかもしれません:

public int getWeeksOfMonth(int year, int month, int weekStart) { 
    Calendar calendar = Calendar.getInstance();  
    calendar.set(Calendar.MONTH, month-1);
    calendar.set(Calendar.YEAR, year);
    calendar.setFirstDayOfWeek(weekStart);
    int numOfWeeksInMonth = calendar.getActualMaximum(Calendar.WEEK_OF_MONTH); 

    return numOfWeeksInMonth;
}

そして、次のような行でメソッドを呼び出します

int weeks = getWeeksOfMonth(2012, 5, Calendar.WEDNESDAY);
于 2012-10-01T15:26:54.960 に答える
0
于 2017-09-09T22:19:21.587 に答える