应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧。 我将显示部分用html 写好,点击的按钮触发事件函数是check();
// 输入值判断部分
...
//调用核心函数
days(theYear,theMonth,theDay);
}
核心函数days如下:
var date0 = new Date(year,0,1); //当年的第一天是周几
// alert(date0.getDay());
var date1 = new Date(year,month-1,day); //将日期值格式化,0-11代表1月-12月;
// alert((days + date0.getDay()+6)/7);
var nthOfWeek = Math.floor((days + date0.getDay()+6)/7); //向下取整
// alert(nthOfWeek);
var toDay = new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六");
//day.getDay();根据Date返一个星期中的某其中0为星期日
alert("该日期是一年中的第"+days+"天
"+" 是第"+nthOfWeek+"周的"+toDay[date1.getDay()]);
}
调试过程中遇到了许多意外的错误,如类型的不匹配带来的计算错误,如数字的舍入问题;
在队友的协助下,他负责审核和协助抓虫子,我负责实施和编码;
在最后一个环节,对输入值的测试中,我们很好的相互协助,分析不同的输入情况,涵盖了各种可能的意外,很快的完成了功能的完善;
下面是对输入值的判断是否允许的代码 :
if((theMonth == 2 && theDay > 29 && isLeapYear(theYear))||(theMonth == 2 && theDay > 28 && !isLeapYear(theYear))) {
alert("输入有误,请重新输入");
return ;
}
if((theMonth == 4 || theMonth == 6 || theMonth == 9 || theMonth == 11) && theDay == 31 ) {
alert("输入有误,请重新输入");
return ;
}