如何在android中找到当月的星期六和星期日?
How to find the Saturday and Sunday of the current month in android?
我想在我的日历中禁用星期六和星期日。为此,我首先必须找到它。我试过了,但我无法得到它。这里我贴出代码。
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
public static ArrayList<Calendar> getAllSundayDate(Calendar aCurrentDateCal, int aMaxMonth){
//max month next month for Exp: next 2 month from this month
ArrayList<Calendar> disableDayList = new ArrayList<>();
Calendar cal;
cal = aCurrentDateCal;
for (int index = 0; index < aMaxMonth; index++) {
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
Calendar curCal = Calendar.getInstance();
curCal.set(year, month , 1);
int daysInMonth = curCal.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int day = 1; day <= daysInMonth; day++) {
curCal.set(year, month, day);
int dayOfWeek = curCal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
disableDayList.add(curCal);
Date curDate = new Date(curCal.getTimeInMillis());
System.out.println(curDate);
}
}
cal.add(Calendar.MONTH, 1);
}
return disableDayList;
}
我想在我的日历中禁用星期六和星期日。为此,我首先必须找到它。我试过了,但我无法得到它。这里我贴出代码。
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
public static ArrayList<Calendar> getAllSundayDate(Calendar aCurrentDateCal, int aMaxMonth){
//max month next month for Exp: next 2 month from this month
ArrayList<Calendar> disableDayList = new ArrayList<>();
Calendar cal;
cal = aCurrentDateCal;
for (int index = 0; index < aMaxMonth; index++) {
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
Calendar curCal = Calendar.getInstance();
curCal.set(year, month , 1);
int daysInMonth = curCal.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int day = 1; day <= daysInMonth; day++) {
curCal.set(year, month, day);
int dayOfWeek = curCal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
disableDayList.add(curCal);
Date curDate = new Date(curCal.getTimeInMillis());
System.out.println(curDate);
}
}
cal.add(Calendar.MONTH, 1);
}
return disableDayList;
}