`

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
分享到:
评论

相关推荐

    jQuery datepicker 日期选择器 中文汉化版 开始日期结束日期

    这段代码将创建两个日期选择器,分别用于选择开始日期和结束日期,开始日期不能早于今天,而结束日期不能超过一个月后且至少要晚于开始日期一天。 6. **自定义事件和回调函数**:jQuery datepicker还支持自定义...

    js获取一段时间内日期(天、周一、月、年)

    在JavaScript中,获取一段时间内的日期是一项常见的任务,尤其在数据处理和日历应用中非常有用。这个主题涉及到几个关键的概念,包括日期对象的创建、日期的比较以及如何遍历一个日期范围来提取特定类型的日期。以下...

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

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

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

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

    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...

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

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

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

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

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

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

    日文版日期控件

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

    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...

    网页日期选择js文件

    "网页日期选择js文件" 提供的就是一个JavaScript实现的日期选择功能,使得开发者无需编写复杂的代码就能在网页上添加这种交互式元素。 JavaScript是一种在客户端运行的脚本语言,它对于网页动态交互起着至关重要的...

    js(javascript) 日期控件

    JavaScript(通常简称为JS)是一种轻量级的解释型编程语言,主要用于网页和网络应用的开发。在网页中,JS可以极大地增强用户交互性,其中日期控件是常见的一种功能,用于帮助用户方便地选择日期,常用于日历插件、...

Global site tag (gtag.js) - Google Analytics