`

JS计算月份里每周的开始日期和结束日期及工作日

阅读更多
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=gb2312"><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

<script type="text/javascript">

function show(year,month) {
 var week = showWeekDate(year,month);
 
 document.writeln("周起始时间"+week.week1.start+"-"+week.week1.end+"  工作日"+week.week1.workDays+"<br/>");
       document.writeln("周起始时间"+week.week2.start+"-"+week.week2.end+"  工作日"+week.week2.workDays+"<br/>");
      document.writeln("周起始时间"+week.week3.start+"-"+week.week3.end+"  工作日"+week.week3.workDays+"<br/>");
      document.writeln("周起始时间"+week.week4.start+"-"+week.week4.end+"  工作日"+week.week4.workDays+"<br/>");
      document.writeln("周起始时间"+week.week5.start+"-"+week.week5.end+"  工作日"+week.week5.workDays+"<br/>");

 if(week.hasOwnProperty("week6"))
   {    
document.writeln("周起始时间"+week.week6.start+"-"+week.week6.end+"  工作日"+week.week6.workDays+"<br/>");
 }
}

function showWeekDate(year,month)
{ 
 var date = new Date();
 if (year.length > 0 && month.length > 0 ) 
  {
  date = new Date(year,month-1,1);
  } else {
  date = new Date(date.getFullYear(),date.getMonth(),1);
  }
  
 var week = new Object;
 week.week1 = new Object;
 week.week2 = new Object;
 week.week3 = new Object;
 week.week4 = new Object;
 week.week5 = new Object;
 
 //本月第一天是周几 
 week.today = date.getDay();
 if (week.today == 0) 
 {
  date.setDate(date.getDate()+1);
  week.today = date.getDay();
 }
 
 //本月第一周工作日
 week.week1.workDays = 5-week.today+1;
 if (week.week1.workDays<0) week.week1.workDays=0;
 //本月第一周起始日期
 week.week1.start = date.getDate()+"/"+(date.getMonth()+1);
 //本月第一周结束日期
 date.setDate(date.getDate()+(1+week.week1.workDays));
 week.week1.end = date.getDate()+"/"+(date.getMonth()+1);

 
        //本月第二周起始日期
 date.setDate(date.getDate()+1);
 week.week2.workDays = 5;
 week.week2.start = date.getDate()+"/"+(date.getMonth()+1);
 //本月第二周结束日期
 date.setDate(date.getDate()+(1+week.week2.workDays));
 week.week2.end = date.getDate()+"/"+(date.getMonth()+1);

 
 //本月第三周起始日期
 date.setDate(date.getDate()+1);
 week.week3.workDays = 5;
 week.week3.start = date.getDate()+"/"+(date.getMonth()+1);
 //本月第三周结束日期
 date.setDate(date.getDate()+(1+week.week3.workDays));
 week.week3.end = date.getDate()+"/"+(date.getMonth()+1);


 //本月第四周起始日期
 date.setDate(date.getDate()+1);
 week.week4.workDays = 5;
 week.week4.start = date.getDate()+"/"+(date.getMonth()+1);
 //本月第四周结束日期
 date.setDate(date.getDate()+(1+week.week4.workDays));
 week.week4.end = date.getDate()+"/"+(date.getMonth()+1);


 date.setDate(date.getDate()+1);
 week.week5.start = date.getDate()+"/"+(date.getMonth()+1);
 
 //计算月底日期 
        var nextMonth = new Date(date.getFullYear(),date.getMonth()+1,1);
 var monthLastDay = new Date(nextMonth-86400000); 
 
 date.setDate(date.getDate()+6);
      if (date <= monthLastDay)
 {
  week.week5.workDays = 5;
  week.week5.end = date.getDate()+"/"+(date.getMonth()+1); 
  if (date < monthLastDay) {
   week.week6 = new Object;
   date.setDate(date.getDate()+1);
   week.week6.start = date.getDate()+"/"+(date.getMonth()+1);
   week.week6.end = monthLastDay.getDate()+"/"+(date.getMonth()+1);
   week.week6.workDays = monthLastDay.getDay();
  }
 } else {
  week.week5.end = monthLastDay.getDate()+"/"+(monthLastDay.getMonth()+1);
  week.week5.workDays = monthLastDay.getDay();
  if (week.week5.workDays >5 ) week.week5.workDays = 5;   
 }
 return week;
}



</script>

</HEAD>
<body>
   Year:<input type="text" id="year" value="2011"/>
   Month:<input type="text" id="month" value="8"/>
   <input type="button" value="show" onclick="javascript:show(document.getElementById('year').value,document.getElementById('month').value)"/>
</body>
</html>

 

 运行结果:

 

 周起始时间1/8-7/8 工作日5
周起始时间8/8-14/8 工作日5
周起始时间15/8-21/8 工作日5
周起始时间22/8-28/8 工作日5
周起始时间29/8-31/8 工作日3

1
0
分享到:
评论

相关推荐

    js验证日期格式,比较日期大小,判断两日期年月是否相同借鉴.pdf

    以上三个函数提供了JavaScript中处理日期的基本能力:比较日期大小、验证日期格式以及判断两个日期是否在同一个月份。这些函数可以很好地帮助开发者在Web应用中进行日期相关的逻辑处理,从而提高应用程序的功能性和...

    根据年月获取这个月份的所有日期

    在JavaScript编程中,有时我们需要获取特定年份和月份内的所有日期。这在处理日历、数据分析或者时间相关的应用中非常常见。"根据年月获取这个月份的所有日期"这个任务可以通过编写一个函数来实现,就像提供的代码...

    web端 日期选择器 月份选择器 时间选择器 时间范围选择器

    在Web开发中,用户界面经常需要提供日期和时间选择功能,以便用户能够方便地输入或选择日期和时间。本文将详细讲解"web端日期选择器、月份选择器、时间选择器以及时间范围选择器"这四个核心知识点,并结合提供的文件...

    判断是否是节假日以及几个工作日后的日期(包含json格式依赖jar包)

    在这个例子中,`HolidayCalculator`类根据传入的日期和工作日数量,计算出新的日期,并打印出来。 总的来说,这个工具类通过引入JSON格式的节假日数据,结合Java的日期处理能力,提供了灵活的日期判断和计算功能,...

    JQuery-bootstrap-datetimepicker开始时间小于等于结束时间-相互约束-清除时间

    而为了将时间限制从开始时间上移除,可以通过设置结束时间的开始日期为1970年1月1日(一个非常早的日期),或者设置一个非常晚的日期如2286年作为结束时间的开始日期,这样就可以将时间约束移除。 在清除时间的实现...

    HTML5手机移动端时间日期选择插件_在线演示_时间_日期_js特效_js代码_files.zip

    2. **JavaScript和jQuery基础**:这个插件基于JavaScript(可能包括jQuery库)编写,利用JavaScript强大的DOM操作和事件处理能力,实现了动态的日期和时间选择效果。jQuery简化了跨浏览器的DOM操作,使得代码更加...

    日期js 万年历中提取的单天日期包括洋历农历节日节气等全部信息

    这个`Date`对象提供了丰富的API,例如`getFullYear()`获取四位数的年份,`getMonth()`获取月份(注意,JavaScript中的月份是从0开始的),`getDate()`获取月份中的日期,`getHours()`、`getMinutes()`和`getSeconds...

    日文版日期控件

    这个控件应该能够以符合日本用户习惯的方式显示日期,并且在用户选择开始日期和结束日期时,确保开始日期始终小于结束日期,以防止逻辑错误。 首先,我们需要了解JSP(JavaServer Pages)是Java平台上的一种动态...

    javascript实现取的整一年后的时间

    5. **拼接日期字符串**:将年、月、日拼接到一个字符串中,并且确保月份和日期都是两位数(如 09 或 05)。 #### 应用场景 1. **合同到期提醒**:用于确定合同的到期日期,以便提前通知相关人员进行续签或其他操作...

    js移动端日期时间选择控件

    通过实例化 `Date` 对象,我们可以获取当前日期和时间,也可以进行日期的计算和格式化。例如: ```javascript var now = new Date(); var year = now.getFullYear(); var month = now.getMonth() + 1; // 注意月份...

    Js获取当前日期时间及格式化代码

    标签中的知识点:涉及到Js在获取日期时间方面相关的几个关键功能和方法,包括获取年份、月份、日、星期、时间等,以及日期时间的格式化方法。 详细知识点介绍: 1. 获取当前日期和时间: - JavaScript中的Date...

    年日历实现,维护工作日和休息日,初始化法定节假日

    本文将详细探讨如何实现一个年日历,包括维护工作日和休息日,以及初始化法定节假日,主要涉及的技术栈是Vue.js,一个流行的前端JavaScript框架。 首先,我们需要理解年日历的基本构成。年日历通常会展示一年中的12...

    H5日期控件(酒店预定,两个日期选择)

    日期控件是UI中的常见元素,常用于各种预订系统,如酒店预订、机票预订等,让用户能够方便地选择开始和结束日期。在这个场景中,我们关注的是一个特别设计的H5日期控件,它特别针对酒店预订流程,允许用户选择两个...

    js日期选择代码.zip

    2. **获取日期和时间**:`Date`对象提供了多种方法来获取日期和时间的各个部分,如`getDate()`返回月份中的日期,`getMonth()`返回月份(注意,月份是从0开始的),`getFullYear()`返回四位数的年份,`getHours()`、...

    纯JS方法比较日期之间大小(实用)

    这里需要注意的是,由于JavaScript中的月份是从0开始计数的,所以在创建`Date`对象时,需要将月份减1。 #### 3. 比较日期大小 接下来,需要比较`startTime`和`endTime`的大小。如果开始时间晚于结束时间,则会弹出...

    JQ JS javascript new Data() 获取 指定日期 的 后一天

    在JavaScript编程语言中,`Date`对象是处理日期和时间的核心工具。`new Date()`构造函数用于创建一个表示当前日期和时间的新`Date`对象。然而,在这个特定的场景下,我们关注的是如何使用`Date`对象来获取指定日期...

    工作日计算函数

    计算工作日差值时,我们需要从起始日期开始,逐天向前或向后遍历,直到达到结束日期,但要跳过非工作日。 在Excel中,有一个内置的WORKDAY函数,可以方便地完成这项任务。WORKDAY函数接受三个参数:起始日期、工作...

    datetimepicker实例以及开始时间和结束时间相互约束

    在这个JavaScript示例中,我们为开始和结束日期的`datepicker`添加了`onSelect`事件处理器,确保结束日期始终大于或等于开始日期。 在实际应用中,我们还需要考虑用户界面的友好性和异常处理,比如当用户尝试输入...

    js 日期 和sqlserver 兼容

    在开发Web应用时,JavaScript(JS)和SQL Server之间的日期兼容性问题经常出现,因为两者处理日期的方式有所不同。本文将详细探讨如何在JS与SQL Server之间有效地管理和转换日期,以确保数据的一致性和正确性。 ...

    js内计算日期差

    此函数将字符串形式的日期和时间转换为JavaScript的时间戳。 #### 3.3 计算日期差(周数) 此外,文件中还包含了一个`dateDiffWeek`函数,用于计算两个日期之间的周数差异: ```javascript function dateDiffWeek...

Global site tag (gtag.js) - Google Analytics