问题:把两个日期存放到ArrayList中,不包含周六周日的一段代码,用Calendar处理的,会出现时间混乱问题。请哪位高手指教。下面为代码。或者不用calendar处理,怎么实现?
public ArrayList getNoWeek(String bDateStr,String eDateStr){ ArrayList result = new ArrayList();
注:DateUtil类为转换日期类型;
if(bDateStr.length()==10){
Date begin = DateUtil.StringToDate1(bDateStr);
Date end = DateUtil.StringToDate1(eDateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(begin);
while(!end.before(calendar.getTime())){
int type = calendar.get(Calendar.DAY_OF_WEEK);
Date _date = calendar.getTime();
if(type == 1 || type == 7){
}else{
result.add(_date);
}
calendar.add(Calendar.DATE,1);
}
}
return result;
}
public ArrayList getNoWeek(String bDateStr,String eDateStr){ ArrayList result = new ArrayList();
注:DateUtil类为转换日期类型;
if(bDateStr.length()==10){
Date begin = DateUtil.StringToDate1(bDateStr);
Date end = DateUtil.StringToDate1(eDateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(begin);
while(!end.before(calendar.getTime())){
int type = calendar.get(Calendar.DAY_OF_WEEK);
Date _date = calendar.getTime();
if(type == 1 || type == 7){
}else{
result.add(_date);
}
calendar.add(Calendar.DATE,1);
}
}
return result;
}
ArrayList result = new ArrayList();
if (bDateStr.length() == 10) {
// Date begin = DateUtil.StringToDate1(bDateStr);
// Date end = DateUtil.StringToDate1(eDateStr);
Date begin = new Date(bDateStr);
Date end = new Date(eDateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(begin); while (!end.before(calendar.getTime())) {
int type = calendar.get(Calendar.DAY_OF_WEEK);
Date _date = calendar.getTime();
if (type == 1 || type == 7) {
} else { result.add(_date);
}
calendar.add(Calendar.DATE, 1);
}
} return result;
} public static void main(String[] args) {
String bDateStr = "2007/10/31";
String eDateStr = "2007/11/05";
List lst = new ArrayList();
lst = getNoWeek(bDateStr, eDateStr);
for (int i = 0; i < lst.size(); i++) {
System.out.println(lst.get(i));
}
}
稍微修改了一下,不知道是不是lz想要的。