天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 4088|回复: 12

[已解决] 如何根据当前日期获取前三个工作日的日期

[复制链接]
派活园 发表于 2013-12-3 10:55:35 | 显示全部楼层 |阅读模式
本帖最后由 kimi 于 2014-2-27 15:49 编辑

如题,已知当前日期,如果获取距离当前日期3个工作日对应的日期(注:指工作日)
sophie 发表于 2013-12-3 11:40:00 | 显示全部楼层
您好,根据您的需求,给您的解决方案如下:
您根据我们封装好的函数adjustDay(date, num)(日期天校正函数:date:日期型参数;num:正负整数)获取当前 日期的前一天日期,再根据isWorkingTime(currentDate)(currentDate: "yyyy-MM-dd HH:mm:ss"或者"yyyy-MM-dd HH:mm"格式的字符串)函数判断该日期是否为一个工作日,如果是那么先记录下来,再获取该日期判断他的前一天是否为工作日,如果不是再获取它的前2天为是否为工作日,以此类推循环判断获取出来的日期是否为工作日,如果是则返回该日期。
kimi 发表于 2013-12-4 09:37:23 | 显示全部楼层
您好:大致代码您可参考如下:

  1. var value1=getToday();
  2. var j=0;
  3. var value2=null;
  4. for(var i1=1;i1<30;i1++){   
  5.       var x=-i1;
  6.       value2=adjustDay(value1,x);
  7.       println(value2+"      =====value2======");
  8.       println(isWorkingTime(value2)+"      ====是否为工作时间====");  //可能这里需要注意的是isWorkingTime(date)中的参数时间包括了年月月时分秒格式,所以您对应的value1时间一定要的工作时间。
  9.       if(isWorkingTime(value2)){
  10.                    j++;
  11.                   println(j+"     =====j=====");
  12.                    if(j==3){
  13.                          break;
  14.                   }
  15.       }
  16. }
  17. value2;
复制代码
您先尝试,有问题我们再沟通。
 楼主| 派活园 发表于 2013-12-4 15:36:02 | 显示全部楼层
正在尝试~~
sophie 发表于 2013-12-4 15:40:40 | 显示全部楼层
好的,有结果记得跟进。。。
 楼主| 派活园 发表于 2013-12-5 14:21:40 | 显示全部楼层
回复 5# sophie


    按照你这样效率是不是有点慢,而且你看看,并不是每个月的时间都是30天,你这样不灵活,而且如果我要获取前100个工作日的,不是得那么多次循环!是否有其他方法可以效率更高点!你说的这种方法目前有在测试,但是这个需要我们再验证才能进一步给你回复,一有解决马上给你反馈!!
kimi 发表于 2013-12-5 14:31:45 | 显示全部楼层
恩好的,那您先尝试,针对您说的如果是获取的前100个工作日,那您这里的循环就遍历多一些,我对应的代码不是说跟进一个月有多少天就遍历多少遍,因为正确情况下,您当前日期的前3个工作日,循环30遍,前3个工作日一定到这个时间段中了,所以我才循环30遍,如果您的工作日历的5天制度的,那您现在要获取前3个工作日遍历的条件到7天就行了,这个根据您实践的情况来啊。那您对应的帖子我先移到待实践。
 楼主| 派活园 发表于 2013-12-9 16:14:51 | 显示全部楼层
回复 7# kimi


    isWorkingTime发现异常,这个函数没有定义!
kimi 发表于 2013-12-9 16:26:17 | 显示全部楼层
不好意思,请问您是什么版本呢?这个函数是我们后续版本中加上去的,您可以看下baselib下面是否有这个方法。
 楼主| 派活园 发表于 2013-12-9 16:31:26 | 显示全部楼层
回复 9# kimi


    sp5 10357

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 13:36

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表