其实是要精确到周即可, 即给定当前时间, 知道是本学期的开学第几周. 问题的关键好像是没找到规律, 我现在用的是如下代码(php), 准确度不够好:
function teachweek ($date){
$timestamp=strtotime($date);
if (date('m', $timestamp)>=9){
return date('W', $timestamp)-35;
}elseif(date('m', $timestamp)<=2){
return date('W', $timestamp)+18;
}else{
return date('W', $timestamp)-7;
}
}
不准确的问题应该出在35、18这几个数字上,另外,如果9月1日是星期六或者星期日的话,也不能算作第一周,所以,可以先判断当年9月1日是在第几周
这样,第四行就能替换成
是否+1需要通过对9月1日是否为周六/日判断确定,这儿具体就不写了;
如果日期是年初寒假之前,还需要跨年计算去年9月1日到12月31日的周数
同样的,是否+1需要通过对9月1日是否为周六/日判断确定,这样,第六行就能替换成
同理,确定第二学期开学日期的话,类似思路修改最后一个retrun里的7,即可判断日期是第二学期的第几周