因为项目需要,写了一个js计算今天是几月几号,星期几,第几周的插件。 线上测试地址:http://www.stuzone.com/
具体实现效果:今天是6月13日 星期四 第16周
定义一些变量,具体就不多说了。
var d = new Date(),
year = d.getFullYear(),
month = d.getMonth(),
week = d.getDay(),
day = d.getDate(),
monthDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31),
weekDay = "",
isLeapYear = false; //是否为闰年
将数字转换为汉字,因此用了一个switch的转换
switch(week) {
case 0:
weekDay = "日";
break;
case 1:
weekDay = "一";
break;
case 2:
weekDay = "二";
break;
case 3:
weekDay = "三";
break;
case 4:
weekDay = "四";
break;
case 5:
weekDay = "五";
break;
case 6:
weekDay = "六";
break;
}
判断是否为闰年,大家应该都不陌生吧
if( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
isLeapYear = true;
}
循环计算天数
function getCurrentDay(theMonth,theDay) {
var currentDay = 0;
for(var i = 0;i < monthDay.length;i++) {
if(i < theMonth) {
if(isLeapYear && i == 1) {
currentDay = currentDay + 29;
}
else {
currentDay = currentDay + monthDay[i];
}
}
if(i == theMonth) {
currentDay = currentDay + theDay;
}
}
return currentDay;
}
//我们学校忘记是什么时候开学的了,大致记得是2.24开始的第一周,因此这里是把3.24之前的天数减去
var nowDay = getCurrentDay(month,day),
initialDay = getCurrentDay(1,23),
weekYear = parseInt((nowDay - initialDay) / 7);
if(week != 6) {
weekYear = weekYear + 1;
}
var today = document.getElementById("today");
today.innerHTML = "今天是" + (month + 1) + "月" + day + "日" + "<span style="margin-left: 15px;">" + "星期" + weekDay + "</span>" + "<span style="margin-left: 15px;">" + "第" + weekYear + "周" + "</span>";
其实我是想算农历的,但是不知道阳历与农历的转换算法,只好作罢。