(function () {
var doc = $.context.getCurrentDocument();
/*
严谨一些先判断变量是否有值再用.getValue(),我这边设置默认了所以直接获取变量值
*/
var startDay = doc.getElementByName("开始日期").getValue();
var endDay = doc.getElementByName("结束日期").getValue();
var startTime = doc.getElementByName("开始时间").getValue();//1:上午,2:下午
var endTime = doc.getElementByName("结束时间").getValue();//1:上午,2:下午
if(startDay!=null && startDay!="" && endDay!=null && endDay!=""){
//日期转换并计算差额
var startDateObject = $.date.timestampToDate(startDay);
var endDateObject = $.date.timestampToDate(endDay);
var format = "yyyy-MM-dd";
var startDateStr = $.date.dateToString(startDateObject,format);
var endDateStr = $.date.dateToString(endDateObject,format);
var datedifference = (new Date(endDateStr) - new Date(startDateStr)) / (1000 * 3600 * 24);
//相差天数,+1是默认申请请假天数为1天
var num = parseFloat(datedifference)+1;
//日期相差天数小于0,默认为0
if(num<0){
return 0;
}
//当天开始时间是下午,结束时间是上午,错误数据,返回0
if(endTime<startTime&&num==1){
return 0;
}
//当开始时间是下午,结束时间是上午,必须是大于默认的1天的申请数,才能算是有效数据
if(endTime<startTime&&num>1){
num = num-1;
}
//当天开始时间是上午,结束时间是下午,默认数据,返回1天的申请数
if(num==1&&startTime<endTime){
num=1;
}
//当开始和结束时间都一样,则是0.5天的申请数
if(startTime==endTime&&num>=1){
num = num-0.5;
}
//注意表单效验0不能提交
return num;
}
})()
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!