/*** 查询一个时间段的总周数和查询当前时间是第几周
*@paramstart
*@paramend
*@return
*/
private int[] selectWeekNum(Date start,Date end,int week,intflag){
java.util.Calendar now=java.util.Calendar.getInstance();
java.util.Calendar c_total=java.util.Calendar.getInstance();
java.util.Calendar c_begin=java.util.Calendar.getInstance();
java.util.Calendar c_end=java.util.Calendar.getInstance();int count = 0;int weekTotal = 0;try{
c_begin.setTime(start);
c_end.setTime(end);
now.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(sdf.format(newDate())));int begin =c_begin.get(java.util.Calendar.WEEK_OF_YEAR);int over =c_end.get( java.util.Calendar.WEEK_OF_YEAR);int z =now.get( java.util.Calendar.WEEK_OF_YEAR);if (c_begin.getWeekYear() !=c_end.getWeekYear()) {
Date totalYear= new SimpleDateFormat("yyyy-MM-dd").parse(c_begin.getWeekYear() + "-12-31");
c_total.setTime(totalYear);int x =c_total.get(java.util.Calendar.WEEK_OF_YEAR);while(x==1){
c_total.add(java.util.Calendar.DAY_OF_MONTH,-1);
x=c_total.get(java.util.Calendar.WEEK_OF_YEAR);
}//如果结束时间刚好是星期天则不加1
int weekNum = this.dayForWeek(new SimpleDateFormat("yyyy-MM-dd").format(end));int duoyu = 0;if(weekNum==7) {
duoyu= x - begin+1;
}else{
duoyu= x - begin + 1+1;
}
weekTotal= over +duoyu;
}else{//如果结束时间刚好是星期天则不加1
int weekNum = this.dayForWeek(new SimpleDateFormat("yyyy-MM-dd").format(end));if(weekNum==7){
weekTotal= over -begin ;
}else{
weekTotal= over - begin + 1;
}
}if (c_begin.getWeekYear() !=now.getWeekYear()) {//计算总周数
int x =c_total.get(java.util.Calendar.WEEK_OF_YEAR);while(x==1){
c_total.add(java.util.Calendar.DAY_OF_MONTH,-1);
x=c_total.get(java.util.Calendar.WEEK_OF_YEAR);
}int weekNum = this.dayForWeek(new SimpleDateFormat("yyyy-MM-dd").format(start));int duoyu =0;if(weekNum==7){
duoyu= x - begin + 1+1;
}else{
duoyu= x - begin + 1;
}
count= duoyu +z;
}else{int weekNum = this.dayForWeek(new SimpleDateFormat("yyyy-MM-dd").format(start));if(weekNum==7){
count= (z - begin + 1)+1;
}else{
count= (z - begin + 1);
}
}if (c_end.getTime().getTime() < now.getTime().getTime() || count < 0) {//如果当前时间大于学期结束时间,默然显示第一周
count = 1;
}
//下拉框默认显示的东西可根据实际情况删除或保留if (week != 0 && flag == 1) {
count=week;
}
}catch(Exception e) {
e.printStackTrace();
}return new int[]{count,weekTotal};
}