本帖最后由 kimi 于 2014-2-27 15:22 编辑
Q:请问如何获取月份的工作日天数?
A:首页您可以获取当前月份的第一天和最后一天,然后判断当前月份的第一天是不是工作日,如果是工作时间用一个变量保存,然后再用adjustDay函数增加一天,或者当前月份的第二天,然后再判断这第二天是不是工作时间,然后再累计
获取当前月份的第一天和最后一天可参考帖子:http://www.teemlink.com/bbs/view ... %C8%D5%C6%DA%2Bkimi
获取到最后一天的数字就是for循环的次数,类似代码如下:
- //当前月第一天
- var now = getToday(); //当前日期
- var nowDayOfWeek = now.getDay(); //今天本周的第几天
- var nowDay = now.getDate(); //当前日
- var nowMonth = now.getMonth(); //当前月
- var nowYear = now.getYear(); //当前年
- nowYear += (nowYear < 2000) ? 1900 : 0; //
- var monthStartDate = new Date(nowYear, nowMonth, 1);
- var myyear = monthStartDate.getFullYear();
- var mymonth = monthStartDate.getMonth()+1;
- var myweekday = monthStartDate.getDate();
-
- if(mymonth < 10){
- mymonth = "0" + mymonth;
- }
- if(myweekday < 10){
- myweekday = "0" + myweekday;
- }
- var rtn1=myyear+"-"+mymonth + "-" + myweekday;
- println(rtn1+" ===rtn1===");
- //当前月最后一天
- var now = getToday(); //当前日期
- var nowDayOfWeek = now.getDay(); //今天本周的第几天
- var nowDay = now.getDate(); //当前日
- var nowMonth = now.getMonth(); //当前月
- var nowYear = now.getYear(); //当前年
- nowYear += (nowYear < 2000) ? 1900 : 0; //
- var monthStartDate = new Date(nowYear, nowMonth, 1);
- var monthEndDate = new Date(nowYear, nowMonth + 1, 1);
- var days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);
- var monthEndDate2 = new Date(nowYear, nowMonth, days);
- var myyear = monthEndDate2.getFullYear();
- var mymonth = monthEndDate2.getMonth()+1;
- var myweekday = monthEndDate2.getDate();
-
- if(mymonth < 10){
- mymonth = "0" + mymonth;
- }
- if(myweekday < 10){
- myweekday = "0" + myweekday;
- }
- var rtn2=myyear+"-"+mymonth + "-" + myweekday;
- println(rtn2+" =====rtn2==");
- var value1=parseDate(rtn1+" 10:00:00","yyyy-MM-dd HH:mm:ss");
- var value2=parseDate(rtn2+" 10:00:00","yyyy-MM-dd HH:mm:ss");
- println(value1+" ======= "+value2);
- var value3=null;
- var day1=value2.getDate();
- var j=0;
- for(var i1=0;i1<day1;i1++){
- var x=i1;
- value3=adjustDay(value1,x);
- println(value3+" =====value3======");
- println(isWorkingTime(value3)+" ====是否为工作时间===="); //可能这里需要注意的是isWorkingTime(date)中的参数时间包括了年月月时分秒格式,所以您对应的value3时间一定要的工作时间。
- if(isWorkingTime(value3)){
- j++;
- }
- }
- j;
复制代码 前台效果图:
后台该用户的工作日历设置如下图:
|