估计只有用循环了,把一年所有的天都查一遍,下面的代码看看对你的问题有没有帮助:
Calendar thisMonth = Calendar.getInstance();
thisMonth.set(Calendar.YEAR, 2002);
thisMonth.set(Calendar.MONTH, 07);//指2002-8月
thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);
thisMonth.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
int kk = 0;
int yourWantWeek = 2;
int yourWantWeekDay = 3; //如上表示你想要的是2002-08的第二个的星期三。
int i=1;
System.out.println(firstIndex);
for(;i<maxIndex;i++){
int xx = firstIndex - (firstIndex/7)*7;
if(xx==yourWantWeekDay)
kk++;
if(kk==yourWantWeek){
break;
}
firstIndex++;
}
Calendar thisMonth = Calendar.getInstance();
thisMonth.set(Calendar.YEAR, 2002);
thisMonth.set(Calendar.MONTH, 07);//指2002-8月
thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);
thisMonth.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
int kk = 0;
int yourWantWeek = 2;
int yourWantWeekDay = 3; //如上表示你想要的是2002-08的第二个的星期三。
int i=1;
System.out.println(firstIndex);
for(;i<maxIndex;i++){
int xx = firstIndex - (firstIndex/7)*7;
if(xx==yourWantWeekDay)
kk++;
if(kk==yourWantWeek){
break;
}
firstIndex++;
}
Calendar的add方法,add(DAY_OF_YEAR,7)就行了,直到DAY_OF_YEAR超过该年的天数结束。