首先有一个班次表 var sj11="${=sql('表','SELECT * FROM banci ',4,1)}";//7:00:00班次1段的头 var sj12="${=sql('表','SELECT * FROM banci ',5,1)}";//15:00:00班次1段的结束 var sj21 = "${=sql('','SELECT * FROM banci ',4,2)}";//15:00:00班次2 var sj22= "${=sql('','SELECT * FROM banci ',5,2)}";//23:00:00班次2 var sj31 = "${=sql('','SELECT * FROM banci ',4,3)}";//23:00:00班次3 var sj32 = "${=sql(','SELECT * FROM banci ',5,3)}";//7:00:00班次3 通过这样得到表中每一个班次的时间开始结束点, 另外有一个日期选择控件,可以选一天,比如就选2017-10-26 如果班次段的开始时间点(比如23:00)大于结束时间点(7:00),那么对应的开始时间:2017-10-26 23:00:00,结束时间2017-10-27 7:00:00 加了一天。 、o、、部分代码如下,每次都比较班次段的开头跟结束哪个大,从而判断结束时间的天数要不要加1,由于班次表格的内容时间会更改,所以要采取每一个段都要比较的方法 case "班次1": {if(sj11<sj12) { starttime.setValue(starttime.getValue().split(" ")[0]+" "+sj11); endtime.setValue(endtime.getValue().split(" ")[0]+" "+sj12);} else{starttime.setValue(starttime.getValue().split(" ")[0]+" "+sj11); var K =endtime.getValue().split(" ")[0]; var M= '${=DATEDELTA(K, 1)}'.split(" ")[0]; endtime.setValue(M+" "+sj12); } break;} case "班次2": {if(sj21<sj22) { starttime.setValue(starttime.getValue().split(" ")[0]+" "+sj21); endtime.setValue(endtime.getValue().split(" ")[0]+" "+sj22);} else{ starttime.setValue(starttime.getValue().split(" ")[0]+" "+sj21); var K =endtime.getValue().split(" ")[0]; var M= '${=DATEDELTA(K, 1)}'.split(" ")[0]; endtime.setValue(M+" "+sj22); } break;} default:{ if(sj31<sj32) { starttime.setValue(starttime.getValue().split(" ")[0]+" "+sj31); endtime.setValue(endtime.getValue().split(" ")[0]+" "+sj22);} else{ starttime.setValue(starttime.getValue().split(" ")[0]+" "+sj31); var K =endtime.getValue().split(" ")[0]; var M= '${=DATEDELTA(K, 1)}'.split(" ")[0]; endtime.setValue(M+" "+sj32); } 但是效果图附上,,为啥每一个结束时间段都是变成27了。。。而且选班次3 结束时间那还不是2017-10-27 7:00:00 编辑于 2017-10-26 16:51 |
最佳回答 |
||||
0
|
|
|||
0
|
|
|||
0
|
|
|||
0
|
|
|||
0
|
|
|||
0
|
|
|||
0
|
|
|||
0
|
|
|||
0
|
|