我怎样才能找到一个月内的星期六和星期日?

Ven*_*kat 7 java android calendar date

我希望找到一个月内的所有星期六和星期日.我怎么能这样做?

Jon*_*eet 9

最简单的方法是只遍历当月所有的日子,检查一周的某一天为他们每个人.例如:

// This takes a 1-based month, e.g. January=1. If you want to use a 0-based
// month, remove the "- 1" later on.
public int countWeekendDays(int year, int month) {
    Calendar calendar = Calendar.getInstance();
    // Note that month is 0-based in calendar, bizarrely.
    calendar.set(year, month - 1, 1);
    int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

    int count = 0;
    for (int day = 1; day <= daysInMonth; day++) {
        calendar.set(year, month - 1, day);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == Calendar.SUNDAY || dayOfweek == Calendar.SATURDAY) {
            count++;
            // Or do whatever you need to with the result.
        }
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

绝对相信有更有效的方法可以做到这一点 - 但这就是我的开始,并在我发现它太慢的时候进行优化.

请注意,如果您能够使用Joda Time,那将使您的生活更轻松......