前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取某一天是该年中的第多少周

获取某一天是该年中的第多少周

作者头像
meteoric
发布2019-02-25 16:45:16
8150
发布2019-02-25 16:45:16
举报
文章被收录于专栏:游戏杂谈游戏杂谈游戏杂谈

判断某一天是该年中的第多少周,需要知道该年的第一天是星期几。

比如第一年第一天是星期一,那么直接获取那一天是该年中的第多少天,取它除以7的上限;

如果不是星期一,则需要进行如下计算:

一周是7天,减去那一天星期几,则该礼拜还有 7 – n天结束,再加一天则是下一礼拜。

示例代码:

1: //那一年第一天是星期几

       2: var yearFirstDay = new Date(year, 0, 1).getDay() || 7;

       3:  

       4: var week = null;

       5: if (yearFirstDay == 1) {

       6:     week = Math.ceil(days/yearFirstDay);

       7: } else {

       8:     days -= (7 - yearFirstDay + 1);

       9:     week = Math.ceil(days/7) + 1;

      10:     days = Math.max(days, 1);

      11: }

完整demo代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>判定某一天在该年份中是第几周</title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <meta http-equiv='content-type' content='text/html;charset=utf-8'>
 </head>

 <body>
  
<script type="text/javascript">   1:     2: /**   3:  * 判断年份是否为润年   4:  *    5:  * @param {Number} year   6:  */   7: function isLeapYear(year) {   8:     return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);   9: }  10: /**  11:  * 获取某一年份的某一月份的天数  12:  *   13:  * @param {Number} year  14:  * @param {Number} month  15:  */  16: function getMonthDays(year, month) {  17:     return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || (isLeapYear(year) ? 29 : 28);  18: }  19:    20:    21: function clickHandler() {  22:     var y = $('year').value,  23:         m = $('month').value,  24:         d = $('day').value;  25:    26:     var now = new Date(y, m - 1, d),  27:         year = now.getFullYear(),  28:         month = now.getMonth(),  29:         days = now.getDate();  30:    31:     //那一天是那一年中的第多少天  32:     for (var i = 0; i < month; i++) {  33:         days += getMonthDays(year, i);  34:     }  35:       36:     //那一年第一天是星期几  37:     var yearFirstDay = new Date(year, 0, 1).getDay() || 7;  38:    39:     var week = null;  40:     if (yearFirstDay == 1) {  41:         week = Math.ceil(days/yearFirstDay);  42:     } else {  43:         days -= (7 - yearFirstDay + 1);  44:         week = Math.ceil(days/7) + 1;  45:    46:         days = Math.max(days, 1);  47:     }  48:    49:     alert(y + "年" + m + "月" + d + "日是" + year + "年的\n\n第" + days + "天\t第" + week + "周");  50: }</script>   1:     2:     3: 选择日期:   4: <select id="year"></select><label for="year">年</label>   5: <select id="month"></select><label for="month">月</label>   6: <select id="day"></select><label for="day">日</label>   7:     8: <button style='margin-left:30px;'>开始计算</button>   9:    10: <script type="text/javascript">  11: function $(id) {  12:     return typeof id === 'string' ? document.getElementById(id) : id;  13: }  14:    15: function addOptions(id, start, end) {  16:     var opt = null,  17:         frag = document.createDocumentFragment();  18:           19:     for (var i = start; i <= end ; i++) {  20:         opt = document.createElement("option");  21:         opt.value = i;  22:         opt.innerHTML = i;  23:         frag.appendChild(opt);  24:     }  25:       26:     $(id).appendChild(frag);  27: }  28:    29: function setDays(y, m) {  30:     addOptions('day', 1, getMonthDays(y, m - 1));  31: }  32:    33: function changeDays() {  34:     var val = $('day').value;  35:       36:     $('day').options.length = 0;  37:    38:     var y = $('year').value,  39:         m = $('month').value;  40:    41:     setDays(y, m);  42:    43:     if (val) {  44:         var maxDay = getMonthDays(y, m - 1);  45:    46:         $('day').value = (val > maxDay) ? maxDay : val;  47:     }  48: }  49:    50: addOptions('year', 1970, 2050);  51: addOptions('month', 1, 12);  52: changeDays();  53:    54: //默认设置为本地时间  55: !(function() {  56:     var now = new Date();  57:     $('year').value = now.getFullYear();  58:     $('month').value = now.getMonth() + 1;  59:     $('day').value = now.getDate();  60: })();  61:    62: $('year').onchange = changeDays;  63: $('month').onchange = changeDays;  64:    65: document.getElementsByTagName("button")[0].onclick = clickHandler;</script>

 </body>
</html>

在线运行实例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>判定某一天在该年份中是第几周</title> </head> <body> 选择日期: <select id="year"></select><label for="year">年</label> <select id="month"></select><label for="month">月</label> <select id="day"></select><label for="day">日</label> <button style='margin-left:30px;'>开始计算</button> </body> </html> 预览代码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-05-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档