AS时间计算:由申请时间计算出计划完成时间
来源:互联网 发布:红叶知弦结局 编辑:程序博客网 时间:2024/04/30 17:21
用户提一个申请单,提单时间就是现在,然后用户选择多久处理完,也就是紧急程度(单位:h),由此计算管理员要求完成的时间,纯粹的完成时间当然是提单时间+用户选择的紧急程度。现在的问题是:计算这个完成时间要除去上班和周末的时间,只计算管理员上班的时间(上班时间:9:30-12:30&&14:00-18:30)。
举个例子:用户现在提个申请单,时间为2013-04-08 16:00:00,选择12个小时处理完,提交。那么,除去周末和下班时间,管理员要求完成的时间就是2013-04-10 11:30:00
用AS代码怎么实现这个 计算要求完成时间的算法 ??
举个例子:用户现在提个申请单,时间为2013-04-08 16:00:00,选择12个小时处理完,提交。那么,除去周末和下班时间,管理员要求完成的时间就是2013-04-10 11:30:00
用AS代码怎么实现这个 计算要求完成时间的算法 ??
private function getSystemTime(event:TaskLogDetailEvent):void { CairngormEventDispatcher.getInstance().removeEventListener("getSystemTime",getSystemTime); var vTime:String = event.vEventResult; var timeFormatter:DateFormatter=new DateFormatter(); timeFormatter.formatString="YYYY-MM-DD JJ:NN:SS"; // vTime = "2013-04-08 10:00:00"; var declareDate:Date=DateFormatter.parseDateString(vTime);//申报时间 var declareTime:String=vTime+".000"; var newDate:Date=DateFormatter.parseDateString(vTime);//还是申报时间???? //如果是在上班之前提交的 那么从9:30开始计时 if(declareDate.getHours()<9||(declareDate.getHours()==9&&declareDate.getMinutes()<=30)) { newDate.setDate(newDate.getDate()); newDate.hours=9; newDate.minutes=30; newDate=countDate(newDate,int(vVo.faultSpeed)*60); } //如果是在中午提交的 那么从下午14:00开始计时 else if(declareDate.getHours()>12&&declareDate.getHours()<14) { newDate.hours=14; newDate.minutes=0; newDate=countDate(newDate,int(vVo.faultSpeed)*60); } //如果是在下班之后提交的 那么从第二天9:30开始计时 else if(declareDate.getHours()>18||(declareDate.getHours()==18&&declareDate.getMinutes()>=30)) { newDate.setDate(newDate.getDate()+1); newDate.hours=9; newDate.minutes=30; newDate=countDate(newDate,int(vVo.faultSpeed)*60); } //上班时提交的 else if(declareDate.getHours()+int(vVo.faultSpeed)>12||(declareDate.getHours()+int(vVo.faultSpeed)==12&&declareDate.getMinutes()>=30)) { if(declareDate.getHours()+int(vVo.faultSpeed)>18||(declareDate.getHours()+int(vVo.faultSpeed)==18&&declareDate.getMinutes()>=30)) { newDate=countDate(newDate,int(vVo.faultSpeed)*60); } else newDate=countDate(newDate,int(vVo.faultSpeed)*60); } else { newDate.hours=newDate.getHours()+int(vVo.faultSpeed); } var planTime:String=timeFormatter.format(newDate)+".000"; var vParam:Array = ITUserParam.getDeclareAddParams(vVo.faultType, vVo.faultTitle, vVo.faultExplain, vVo.faultSpeed, vVo.floor, vVo.userName, vVo.imageArr, vVo.sn,declareTime,planTime); var vBusiness:FaultDeclareBusiness = new FaultDeclareBusiness(this); vBusiness.getResult(ITUserParam.DECLAREADD, vParam); } private function countDate(date:Date, speed:int):Date { //判断周末 if(date.day==0||date.day==6) { date.hours+=24; return countDate(date,speed); } if(date.hours < 12 || (date.hours==12 && date.minutes <= 30)) { var hours1:int = 12 - date.hours; var minute1:int = 30 - date.minutes; //紧急程度和上午剩余时间做判断 if(speed <= hours1*60+minute1) { date.hours += int(speed/60); date.minutes += speed%60; return date; } else { speed -= 12*60+30-date.hours*60-date.minutes; date.hours = 14; date.minutes = 0; return countDate(date,speed); } } else if( (date.hours < 18 || (date.hours==18 && date.minutes <= 30)) && (date.hours > 12 || (date.hours==12 && date.minutes >= 30)) ) { var hours2:int = 18 - date.hours; var minute2:int = 30 - date.minutes; //紧急程度和下午剩余时间做判断 if(speed <= hours2*60+minute2) { date.hours += int(speed/60); date.minutes += speed%60; return date; } else { speed -= 18*60+30-date.hours*60-date.minutes; date.hours = 18+15; date.minutes = 30; return countDate(date,speed); } } return countDate(date,speed); }
- AS时间计算:由申请时间计算出计划完成时间
- 计算UNDO恢复完成时间
- 时间计划
- PostgreSQL 查询计划时间的计算详解
- 时间计算
- 时间计算
- 计算时间
- 时间计算
- 时间计算
- 时间计算
- 时间计算
- 时间计算
- 时间计算
- 时间计算
- 计算时间
- 时间计算
- 时间计算
- 时间计算
- eval和JSON
- java.lang.UnsupportedClassVersionError: Bad version number in .class file
- NAL单元的各种类型介绍
- mac os上配置sublime text2+ctags
- linux内核编译
- AS时间计算:由申请时间计算出计划完成时间
- Java 面向对象(基础) 知识点总结I
- HTML中form与table的区别
- Android Bitmap图像优化
- 各种绩效考核方法的区别
- Android 如何判断一个应用在运行
- 【转】vector的reserve和resize
- Setup Was Unable to Create a DCOM User Account
- java利用jquery和smartupload实现头像上传切割效果