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 
 
 
 屏幕截图 
 
 
 
方法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 
 
 
 屏幕截图 
 
 
 
通过使用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