カレンダーで土曜日と日曜日を無効にしようとしています。それを最初に行うには、それを見つける必要があります。試しましたが、入手できません。ここにコードを投稿しました。
public int countWeekendDays() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1);
int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int count = 0;
for (int day = 1; day <= daysInMonth; day++) {
calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1, day);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SUNDAY || dayOfWeek == Calendar.SATURDAY) {
if(dayOfWeek==Calendar.SUNDAY)
calendar.add(Calendar.DATE, Calendar.SUNDAY-1);
else if(dayOfWeek==Calendar.SATURDAY)
calendar.add(Calendar.DATE, Calendar.SATURDAY);
disable.add(calendar.getTime());
}
}
for(int i=0;i<disable.size();i++)
{
Log.e("***&***",disable.get(i).toString());
}
return count;
}
今月の土曜日と日曜日(例:8月)を取得する必要がありますが、取得した結果は前月、つまり7月です。
代わりにこれを試してください:
List<Date> disable = new ArrayList<>();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
int month = cal.get(Calendar.MONTH);
do {
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY)
disable.add(cal.getTime());
cal.add(Calendar.DAY_OF_MONTH, 1);
} while (cal.get(Calendar.MONTH) == month);
SimpleDateFormat fmt = new SimpleDateFormat("EEE M/d/yyyy");
for (Date date : disable)
System.out.println(fmt.format(date));
出力
Sat 8/6/2016
Sun 8/7/2016
Sat 8/13/2016
Sun 8/14/2016
Sat 8/20/2016
Sun 8/21/2016
Sat 8/27/2016
Sun 8/28/2016
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加