Javascript教程
JavaScript基础
JavaScript Objects
JavaScript BOM
JavaScript DOM
JavaScript OOP
JavaScript Cookies
JavaScript事件
JavaScript异常
JavaScript常用

JS 计算星期

有时我们需要计算当前星期数或给定日期的星期数。可以使用JavaScript编程语言解决此问题。 JavaScript提供了几种日期函数,例如getDays(),getMonth(),getTime(),以解决与日期有关的任务。除此之外,数学函数Math.floor()和Math.ceil()还可帮助计算周数。
下面来看几种情况
在这种方法中,我们将为一周中的每一天分配一个数字,例如1代表星期日,2代表星期一,3代表星期二,依此类推。同样,我们会将数字分配给一周中的其他日期。请注意,工作日从星期日开始,到星期六结束。
让我们假设今天是星期一,星期数是1。因此,如果我们在25天后计算星期数,则星期数将是第4个。
根据周数计算:
25 days = 7 + 7 + 7 + 4 days
下面提到的以下公式用于计算p天后的星期数:
Week Number = least integer [ p / 7 ]
我们可以在我们的JavaScript示例中使用此概念来计算星期数。我们将通过两种方式计算周数:
计算当前日期的星期数 计算预定义日期的星期数
我们将通过示例详细讨论这两种方法。除此之外,我们将通过使用动态的HTML表单从用户那里获取日期输入来动态地计算工作日。
采用日期输入动态HTML表单来计算周数

方法1:计算当前日期的星期数

在这种方法中,我们将找到当前日期的星期数,这意味着将从系统中获取日期。这是一种计算周数的静态方法。按照每个步骤计算工作日:
在JavaScript中定义日期变量 todaydate oneJan 通过使用 new Date()创建日期对象来初始化todaydate变量,默认情况下它将采用系统日期。 通过使用新的Date()创建日期对象来初始化另一个变量oneJan,但这一次是其中的 getFullYear()方法。 getFullYear()函数将返回当前日期的年份以及该年的第一个日期,例如2020年1月1日。 获取当前日期和年份之后,现在使用 Math.floor()方法计算天数。因此,请计算当前日期与当前年份日期之间的差值,并将其除以一天中的总毫秒数(1000 * 60 * 60 * 24)。 现在,将1和先前结果中计算出的天数与当前日期相加,然后除以7,即(this.getDay()+1 +天数)/7。不要忘记将整个计算结果 Math.ceil()方法中第6步的内容。 最后,使用 document.write()在网络上显示计算出的工作日。
现在,我们将把这些步骤转换为实际的实现。请参见以下代码:
<html>
<head>
      <title>计算当前日期的星期数</title>
</head>
<body>
   <script>
      // 定义一个日期对象变量,该变量将采用当前系统日期
       todaydate = new Date();
      // 找到当前日期的年份
       var oneJan = new Date(todaydate.getFullYear(), 0, 1);
       // 计算给定日期中给定年份中的天数
       var numberOfDays = Math.floor((todaydate - oneJan) / (24 * 60 * 60 * 1000));
       // 自当前日期起加1,并返回从0开始的值
       var result = Math.ceil(( todaydate.getDay() + 1 + numberOfDays) / 7);
       // 显示计算结果
       document.write("Week Numbers of current date (" + todaydate +
       ") is: <br>" + result);
   </script>
</body>
</html>
输出
Week number of current date (Tue Sep 29 2020 15:32:19 GMT+0530 (India Standard Time)) is:
40
屏幕截图
在JavaScript中计算当前星期数

方法2:计算预定义日期的星期数

此方法将通过在代码中提供日期来帮助计算星期数。请按照以下步骤操作:
在JavaScript中定义日期变量,即date1 通过使用 new Date()创建日期对象来初始化它,并在其中提供日期。 定义日期后,使用 date2.getTime()-date1.getTime(); ,通过从另一个日期减去一个日期来计算它们之间的时差。 现在下一步是计算日期之间的天数。因此,我们将两个日期的时差除以一天中的毫秒数,即1000 * 60 * 60 * 24 最后,打印使用 document.write()方法计算的结果。
现在,我们将把这些步骤转换为实际的实现。请参见以下代码:
代码示例
<html>
<head>
      <title>计算预定义日期的星期数</title>
</head>
<body>
   <script>
      // 定义日期对象变量
      var date1 = new Date("11/27/2019");
      // 找到输入日期的年份
       var oneJan = new Date(date1.getFullYear(), 0, 1);
       // 计算给定日期中给定年份中的天数
       var numberOfDays = Math.floor((date1 - oneJan) / (24 * 60 * 60 * 1000));
       // 自当前日期起加1,并返回从0开始的值
       var result = Math.ceil(( date1.getDay() + 1 + numberOfDays) / 7);
       // 显示计算结果
       document.write("Week Numbers of date (" + date1 +
       ") is: <br>" + result);
   </script>
</body>
</html>
输出
Week number of date Wed Nov 27 2019 00:00:00 GMT+0530 (India Standard Time):
48
屏幕截图
在JavaScript中计算当前星期数

通过使用HTML表单输入日期来计算星期数

在这种方法中,我们将通过使用动态HTML表单。用户可以从日历中选择日期,然后在 HTML表单中输入到输入字段。这是一种用于计算周数的动态方法,用户可以通过它自己在网上提供输入内容,而不是由程序员在代码中提供日期输入。
请参见下面的代码:
代码示例
<html>
<head>
    <title> 通过用户输入计算星期数 </title>
      <script>
       function weekNumber() {
 // 定义一个变量并从HTML表单中获取输入
 var dateinput = document.getElementById("dateInput1").value;
// 创建一个日期对象变量以存储日期值
 var date1 = new Date(dateinput);
      // 找到当前日期的年份
       var oneJan = new Date(date1.getFullYear(), 0, 1);
       // 计算给定日期中给定年份中的天数
       var numberOfDays = Math.floor((date1 - oneJan) / (24 * 60 * 60 * 1000));
       // 自当前日期起加1,并返回从0开始的值
       var result = Math.ceil(( date1.getDay() + 1 + numberOfDays) / 7);
       // 返回计算结果并显示
       return document.getElementById("result").innerHTML = "Week number of given date is: " + result;
       }
      </script>
</head>
<body>
    <p style="color: 32A80F" align="Center">
    lidihuo: Calculate Week Number using user input
<br> <br> </p>
<p align="Center"> <b> Enter date   </b>
<input type="date" id="dateInput1">
<br> <br>
<button onclick="weekNumber()">
  Calculate Week Number
</button>
    </p>
    <p style="color:32A80F" id="result" align="center"></p>
</body>
</html>
输出结果

lidihuo: Calculate Week Number using user input

Enter date

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4