给出一个日期作为起始日期(开学日期),计算当前的日期(今日)是开学后的第几周:
使用js实现:
// 获取当前周
getNowWeek(){
var date = new Date();
let [year, month, day] = this.data.schoolTime
var start = new Date(year, month-1, day);
//获取当前日期为周一的日期
var date1=date.setDate(date.getDay()=="0"?date.getDate()-6:date.getDate()-date.getDay()+1);
var start1=start.setDate(start.getDay()=="0"?start.getDate()-6:start.getDate()-start.getDay()+1);
//计算时间差
var left_time =date1.valueOf()-start1.valueOf();
var days = Math.ceil(left_time/(3600*24*1000));
// console.log("两个日期之间差"+days)
var week = (days-1)/7+1;
console.log("当前周:"+week)
var result = week
if(week>20 || week <= 0){
result = this.data.now_week;
}
return result
},
java实现:
//获取当前是第几周
//获取开学日期
Date schooleday=schedule.getSchoolday();
schooleday.setDate(schooleday.getDay()==0?schooleday.getDate()-6:schooleday.getDate()-schooleday.getDay()+1);
log.info(schooleday.toString());
java.util.Date date=new java.util.Date();
date.setDate(date.getDay()==0?date.getDate()-6:date.getDate()-date.getDay()+1);
//计算两周的周一之间差多少天
int days= (int) ((date.getTime()-schooleday.getTime())/(24*60*60*1000));
log.info(String.valueOf(days));
int week=days/7+1;
log.info("今天是第{}周",week);