使用JS計算本週在一年中屬於第幾周

function theWeek(){

//當前date
var now = new Date();

//每月多少日
var monthOfFullDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

//當前日,在本年中第幾日
var currentDayOfYear = 0;

//是否爲潤年,即能被4整除
var isFullYear = false;

var currentDayOfWeekIsLastDay = false;

var firstDayOfYearIsFirstDayOfWeek = false;

//當前年份
var year = 0;
if(now.getYear()>=2000)
	year = now.getYear();
else
	year = now.getYear() + 1900;

//當前月份
var month = now.getMonth();

//當前日
var day = now.getDate();

//當前星期幾
var week = now.getDay();

//爲閏年,設isFullYear爲true
if(year%4==0){
	isFullYear = true;
}


//循環計算天數
for(var i=0;i<monthOfFullDay.length;i++){
	//判斷數組月份是否小於等於當前月份
	if(i<month){
		//是閏年和2月份
		if(isFullYear && i==1)
			currentDayOfYear = currentDayOfYear + 29;
		else
			currentDayOfYear = currentDayOfYear + monthOfFullDay[i];
		
	}
	if(i==month)
		currentDayOfYear = currentDayOfYear + day;
}

//設置本年1月1日
var firstDayOfYear = new Date();
firstDayOfYear.setYear(year);
firstDayOfYear.setMonth(0);
firstDayOfYear.setDate(1); 

if(firstDayOfYear.getDay()==0){
	firstDayOfYearIsFirstDayOfWeek = true;
}

var weeksOfYear = currentDayOfYear;

//本星期是否爲最後一日,否,則減去本興起所有日
if(!currentDayOfWeekIsLastDay){
	weeksOfYear = weeksOfYear + firstDayOfYear.getDay();
}

//是否第一個星期爲第一日(即星期日),否,則減去本星期所有日
if(!firstDayOfYearIsFirstDayOfWeek){
	weeksOfYear = weeksOfYear + (7-week-1);
}

return weeksOfYear/7;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章