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

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

[Iscript] 获取月份有多少个工作日【脚本-工作日天数】

[复制链接]
kimi 发表于 2014-2-27 15:08:39 | 显示全部楼层 |阅读模式
本帖最后由 kimi 于 2014-2-27 15:22 编辑

Q:请问如何获取月份的工作日天数?
A:首页您可以获取当前月份的第一天和最后一天,然后判断当前月份的第一天是不是工作日,如果是工作时间用一个变量保存,然后再用adjustDay函数增加一天,或者当前月份的第二天,然后再判断这第二天是不是工作时间,然后再累计
获取当前月份的第一天和最后一天可参考帖子:http://www.teemlink.com/bbs/view ... %C8%D5%C6%DA%2Bkimi
获取到最后一天的数字就是for循环的次数,类似代码如下:

  1. //当前月第一天
  2. var now = getToday();  //当前日期     
  3. var nowDayOfWeek = now.getDay();         //今天本周的第几天     
  4. var nowDay = now.getDate();              //当前日     
  5. var nowMonth = now.getMonth();           //当前月     
  6. var nowYear = now.getYear();             //当前年     
  7. nowYear += (nowYear < 2000) ? 1900 : 0;  //
  8. var monthStartDate = new Date(nowYear, nowMonth, 1);
  9. var myyear = monthStartDate.getFullYear();     
  10. var mymonth = monthStartDate.getMonth()+1;     
  11. var myweekday = monthStartDate.getDate();      
  12.          
  13.     if(mymonth < 10){     
  14.         mymonth = "0" + mymonth;     
  15.     }      
  16.     if(myweekday < 10){     
  17.         myweekday = "0" + myweekday;     
  18.     }
  19. var rtn1=myyear+"-"+mymonth + "-" + myweekday;   
  20. println(rtn1+" ===rtn1===");

  21. //当前月最后一天
  22. var now = getToday();  //当前日期     
  23. var nowDayOfWeek = now.getDay();         //今天本周的第几天     
  24. var nowDay = now.getDate();              //当前日     
  25. var nowMonth = now.getMonth();           //当前月     
  26. var nowYear = now.getYear();             //当前年     
  27. nowYear += (nowYear < 2000) ? 1900 : 0;  //
  28. var monthStartDate = new Date(nowYear, nowMonth, 1);      
  29. var monthEndDate = new Date(nowYear, nowMonth + 1, 1);      
  30. var   days   =   (monthEndDate   -   monthStartDate)/(1000   *   60   *   60   *   24);
  31. var monthEndDate2 = new Date(nowYear, nowMonth, days);


  32. var myyear = monthEndDate2.getFullYear();     
  33. var mymonth = monthEndDate2.getMonth()+1;     
  34. var myweekday = monthEndDate2.getDate();      
  35.          
  36.     if(mymonth < 10){     
  37.         mymonth = "0" + mymonth;     
  38.     }      
  39.     if(myweekday < 10){     
  40.         myweekday = "0" + myweekday;     
  41.     }
  42. var rtn2=myyear+"-"+mymonth + "-" + myweekday;
  43. println(rtn2+"    =====rtn2==");

  44. var value1=parseDate(rtn1+" 10:00:00","yyyy-MM-dd HH:mm:ss");
  45. var value2=parseDate(rtn2+" 10:00:00","yyyy-MM-dd HH:mm:ss");
  46. println(value1+"     =======     "+value2);
  47. var value3=null;
  48. var day1=value2.getDate();
  49. var j=0;
  50. for(var i1=0;i1<day1;i1++){   
  51.       var x=i1;
  52.       value3=adjustDay(value1,x);
  53.       println(value3+"      =====value3======");
  54.       println(isWorkingTime(value3)+"      ====是否为工作时间====");  //可能这里需要注意的是isWorkingTime(date)中的参数时间包括了年月月时分秒格式,所以您对应的value3时间一定要的工作时间。
  55.     if(isWorkingTime(value3)){
  56.                j++;
  57.        }
  58. }
  59. j;
复制代码
前台效果图:
2.jpg
后台该用户的工作日历设置如下图:
3.jpg
4.jpg

本版积分规则

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

GMT+8, 2026-8-12 15:22

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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