问题记录
加法问题
变量取余没有作用???
for(var i = sd;i<=ed;i++){
console.log((parseInt(i-sd))%(parseInt(w+r)));
p=parseInt(i-sd);q=parseInt(w+r);
console.log(p%q);
if(p%q<w){
kal.addSelected( _getDate(new Date(i*oneDay)) ,'YYYY-MM-DD');
}
}
显示的 (parseInt(i-sd))%(parseInt(w+r)) 和 p%q 一直为(parseInt(i-sd))的值,并未取余,导致添加日期不正确
输出p,q 发现问题 js 中取出的 value 是字符串类型,减法能正常计算而加法出现问题 ‘2’+‘2’=‘22’ 导致取余出错
应把w和r分别parseInt()下,改正后方法正确执行
按作休制度添加日期
$('#add-day').click(function(){
var s,e,w,r,sd,ed,p, //s:起日,e:止日,w:工作日,r:休息日
oneDay=1000*3600*24;
if($('#startDay').val()){
s=new Date($('#startDay').val());
}else{
layer.tips('请选择日期', '#startDay');
return;
}
if($('#endDay').val()){
e=new Date($('#endDay').val());
}else{
layer.tips('请选择日期', '#endDay');
return;
}
if($('#work').val() == ''){
w = 1;
}else if(parseInt($('#work').val())!=$('#work').val() || $('#work').val()<=0){
layer.tips('请填入正整数', '#work');
return;
}else{
w = $('#work').val();
}
if($('#rest').val() == ''){
r = 0;
}else if(parseInt($('#rest').val())!=$('#rest').val() || $('#rest').val()<0){
layer.tips('请填入非负整数', '#rest');
return;
}else{
r = $('#rest').val();
}
sd=s/oneDay;ed=e/oneDay;p=parseInt(w)+parseInt(r);
for(var i = sd;i<=ed;i++){
if((i-sd)%p<w){
kal.addSelected( _getDate(new Date(i*oneDay)) ,'YYYY-MM-DD');
}
}
});