用javascript 定义一个函数,实现将得到的整数0~6,转换成周一~周日输出

用javascript 定义一个函数,实现将得到的整数0~6,转换成周一~周日输出,第1张

function getDay(num){

return '周' + ['一','二','三','四','五','六','日'][num];

}

请注意0~6是对应周一到周日,如果要改变对应关系,请修改‘一’到‘日’的顺序。

//法定节假日和调休日的设定

var Holiday = ["2012-01-01", "2012-01-02", "2012-01-03", "2012-01-22", "2012-01-23", "2012-01-24", "2012-01-25", "2012-01-26", "2012-01-27", "2012-01-28", "2012-04-02", "2012-04-03", "2012-04-04", "2012-04-29", "2012-04-30", "2012-05-01", "2012-06-22", "2012-06-23", "2012-06-24", "2012-09-30", "2012-10-01", "2012-10-02", "2012-10-03", "2012-10-04", "2012-10-05", "2012-10-06", "2012-10-07"];

var WeekendsOff = ["2011-12-31", "2012-01-21", "2012-01-29", "2012-03-31", "2012-04-01", "2012-04-28", "2012-09-29"];

function nearlyWeeks (mode, weekcount, end) {

/

功能:计算当前时间(或指定时间),向前推算周数(weekcount),得到结果周的第一天的时期值;

参数:

mode -推算模式('cn'表示国人习惯周一至周日;'en'表示国际习惯周日至周一)

weekcount -表示周数(0-表示本周, 1-前一周,2-前两周,以此推算);

end -指定时间的字符串(未指定则取当前时间);

/

if (mode == undefined) mode = "cn";

if (weekcount == undefined) weekcount = 0;

if (end != undefined)

end = new Date(new Date(end)toDateString());

else

end = new Date(new Date()toDateString());

var days = 0;

if (mode == "cn")

days = (endgetDay() == 0 7 : endgetDay()) - 1;

else

days = endgetDay();

return new Date(endgetTime() - (days + weekcount 7) 24 60 60 1000);

};

function getWorkDayCount (mode, beginDay, endDay) {

/

功能:计算一段时间内工作的天数。不包括周末和法定节假日,法定调休日为工作日,周末为周六、周日两天;

参数:

mode -推算模式('cn'表示国人习惯周一至周日;'en'表示国际习惯周日至周一)

beginDay -时间段开始日期;

endDay -时间段结束日期;

/

var begin = new Date(beginDaytoDateString());

var end = new Date(endDaytoDateString());

//每天的毫秒总数,用于以下换算

var daytime = 24 60 60 1000;

//两个时间段相隔的总天数

var days = (end - begin) / daytime + 1;

//时间段起始时间所在周的第一天

var beginWeekFirstDay = nearlyWeeks(mode, 0, beginDaygetTime())getTime();

//时间段结束时间所在周的最后天

var endWeekOverDay = nearlyWeeks(mode, 0, endDaygetTime())getTime() + 6 daytime;

//由beginWeekFirstDay和endWeekOverDay换算出,周末的天数

var weekEndCount = ((endWeekOverDay - beginWeekFirstDay) / daytime + 1) / 7 2;

//根据参数mode,调整周末天数的值

if (mode == "cn") {

if (endDaygetDay() > 0 && endDaygetDay() < 6)

weekEndCount -= 2;

else if (endDaygetDay() == 6)

weekEndCount -= 1;

if (beginDaygetDay() == 0) weekEndCount -= 1;

}

else {

if (endDaygetDay() < 6) weekEndCount -= 1;

if (beginDaygetDay() > 0) weekEndCount -= 1;

}

//根据调休设置,调整周末天数(排除调休日)

$each(WLDSettingWeekendsOff, function (i, offitem) {

var itemDay = new Date(offitemsplit('-')[0] + "/" + offitemsplit('-')[1] + "/" + offitemsplit('-')[2]);

//如果调休日在时间段区间内,且为周末时间(周六或周日),周末天数值-1

if (itemDaygetTime() >= begingetTime() && itemDaygetTime() <= endgetTime() && (itemDaygetDay() == 0 || itemDaygetDay() == 6))

weekEndCount -= 1;

});

//根据法定假日设置,计算时间段内周末的天数(包含法定假日)

$each(WLDSettingHoliday, function (i, itemHoliday) {

var itemDay = new Date(itemHolidaysplit('-')[0] + "/" + itemHolidaysplit('-')[1] + "/" + itemHolidaysplit('-')[2]);

//如果法定假日在时间段区间内,且为工作日时间(周一至周五),周末天数值+1

if (itemDaygetTime() >= begingetTime() && itemDaygetTime() <= endgetTime() && itemDaygetDay() > 0 && itemDaygetDay() < 6)

weekEndCount += 1;

});

//工作日 = 总天数 - 周末天数(包含法定假日并排除调休日)

return days - weekEndCount;

};

<%@ page language="java" import="javautil" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN"

" >

//起始日期也在计算范围内

function getRestDays(bd,ed)

{

   var d1=new Date(bd),d2=new Date(ed);

   var dateSpan=d2-d1;

   var days=parseInt(dateSpan/(2436001000))+1;//计算两个日期间的天数差,加1是为了把起始日期计算在内

   var weeks=parseInt(days/7,10);

   var result=weeks2;

   if(days%7>0)

   {

      var leftdays=days%7;

      var week1=d1getDay(); //周日=0,周一=1,依次。。       

      if(week1==0)//如果第一个日期从周日开始,剩余天数不足一周(7天)

      {

result +=1;

      }

      else if(week1+leftdays>7)//如果第一个日期从周一到周六,加上剩余天数大于7,表示包含周六和周日,所以有两天

      {

         result +=2;

      }

      else if(week1+leftdays==7)//如果刚好到周六,有一天休息日

      {

         result +=1;

      }

   }

   return result;

}

执行结果可以自测,调用如下:

把需要设定的日期,用变量存储(年、月、日),之后,月份加1

再之后用new Date()方法,设定当前日期为指定日期的后一个月

最后还是用Date对象中的方法,打印出星期,进行数值判断即可

知识点,了解Date对象里的设置与获取方法即可

以上就是关于用javascript 定义一个函数,实现将得到的整数0~6,转换成周一~周日输出全部的内容,包括:用javascript 定义一个函数,实现将得到的整数0~6,转换成周一~周日输出、js 判断一段时间里有几个工作日、js 怎么计算上一周下一周等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9626367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存