作者hannsg546 (冰MMNBNB)
看板Ajax
标题[JS] 请问请假时数计算
时间Mon Jul 9 20:06:42 2012
function getsum1() {
var bDate = txtSTART_DATE_TIME.value;
var eDate = txtEND_DATE_TIME.value;
var bhour = cmbSTARTHOUR.value;
var ehour = cmbENDHOUR.value;
txtDAY.value = (DateDiff(bDate, eDate));
// txthour.value=(DateDiff_1(bhour,ehour))
if( bhour>=17 ){bhour=0,txtDAY.value=txtDAY.value-1
if(ehour>17){ehour=17}{txthour.value=ehour-bhour}}
else{
if(bhour>=17){bhour=8}
if(bhour>17){bhour=17}
else if (bhour < 8){bhour = 8}
else if (bhour == 12 ){bhour = 13}
if(ehour<8){ehour=8}
else if (ehour == 12 ){ehour = 13}
else if(ehour > 17){ehour=17}
// alert(bhour);
// alert(ehour);
if(bhour < 12 && ehour > 13 )
txthour.value=(ehour-bhour-1);
else
txthour.value=(ehour-bhour);
// txthour.value = eval(ehour - bhour)
if (txthour.value == 8) {
txtDAY.value = parseInt(txtDAY.value, 10);
//alert(txtDAY.value);
txtDAY.value = parseInt(txtDAY.value) + 1
txthour.value = "0";
}
}
}
//计算天数的函数
function DateDiff(asStartDate, asEndDate) {
var miStart = asStartDate.replace(/\-/g, '/');
var miEnd = asEndDate.replace(/\-/g, '/');
var miStart_date = new Date(miStart);
var miEnd_date = new Date(miEnd);
return (miEnd_date - miStart_date) / (1000 * 24 * 3600);
}
我想做的市,从早上8点上班下午五点,中间休息一小时,可是按钮选项从0-23都有
当选早於8点以前的话,以8点开始算,请假时间在下午五点以後,以五点算
可是我做出来的假如使用者在开始时间输入1700以後
小时数就没办法算正确
不知道要如何下手
上司出个问题要我做
不知道如何下手
这个还有要考虑跨日的问题
不知道如何 谢谢!
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.227.12.10
※ 编辑: hannsg546 来自: 61.227.12.10 (07/09 20:08)
1F:推 s25g5d4:你应该去问问你老板 07/09 20:27
2F:推 qwer820404:请假时间在下午五点以後… 下午五点不就下班了… 07/09 22:55
3F:→ b12031106:我觉得你先看清楚自己在写什麽比较好.. 07/10 13:17
4F:→ minejel:限制输入就好了..不过也不要太相信前端的数值,後端接收顾 07/11 00:17
5F:→ minejel:好比较重要,跨日有diffdate还是datediff的可以很方便算差 07/11 00:18