根据周开始获取每月的周数

2022-01-11 00:00:00 date calendar android java

我在我的应用程序中使用自定义日历.我让用户可以选择一周的第一天,这可能是:Saturday, Sunday, Monday

I am using a custom calendar in my app. I have given the users option to select the first day of the week which could be: Saturday, Sunday, Monday

我想获取一个月中的周数 - 取决于一周的开始时间,覆盖周开始的默认值 - Sunday.

I want to get the number of weeks in a month - depending on when the week starts, overriding the default value of week start - 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;
}

推荐答案

试试

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

在您的情况下,您可能想要这样做:

In your case you might want to do this:

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);

相关文章