myeyesglazeover
10-01-2006, 08:33 AM
Hello,
I'm trying to create a redirect link based upon the week number of the year. I found some code that appears to do the trick but, it returns incorrect results. Here is the code:
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function showWeek() {
var today = new Date(year,month,day);
var year = y2k(today.getYear());
var month = today.getMonth();
var day = today.getDate();
return 'week' + getWeek(year,month,day) + '.htm';
}
function getWeek(year,month,day) {
var newYear = new Date(year,0,1);
var offset = 7 + 2 - newYear.getDay();
if (offset == 8) offset = 1;
if (offset == 9) offset = 2;
var daynum = ((Date.UTC(y2k(year),month,day,0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
var weeknum = Math.floor((daynum-offset+7)/7);
if (weeknum == 0) {
year--;
var prevNewYear = new Date(year,0,1);
var prevOffset = 7 + 2 - prevNewYear.getDay();
if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
}
return weeknum;
}
//-->
</SCRIPT>
<a href="weekxx.htm" onClick="this.href=showWeek()">Page of the Week</a>
Instead of returning week"weeknum".htm, it returns week"NaN".htm. I assume that it considers Monday to be the beginning of the week but, I'm not sure since it doesn't work. I tried to document.write the weeknum variable and got nothing. I'm fairly new at Javascript and it would help my understanding to find if this is a syntax or logic issue.
Any help is greatly appreciated!!!
myeyesglazeover
I'm trying to create a redirect link based upon the week number of the year. I found some code that appears to do the trick but, it returns incorrect results. Here is the code:
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function showWeek() {
var today = new Date(year,month,day);
var year = y2k(today.getYear());
var month = today.getMonth();
var day = today.getDate();
return 'week' + getWeek(year,month,day) + '.htm';
}
function getWeek(year,month,day) {
var newYear = new Date(year,0,1);
var offset = 7 + 2 - newYear.getDay();
if (offset == 8) offset = 1;
if (offset == 9) offset = 2;
var daynum = ((Date.UTC(y2k(year),month,day,0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
var weeknum = Math.floor((daynum-offset+7)/7);
if (weeknum == 0) {
year--;
var prevNewYear = new Date(year,0,1);
var prevOffset = 7 + 2 - prevNewYear.getDay();
if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
}
return weeknum;
}
//-->
</SCRIPT>
<a href="weekxx.htm" onClick="this.href=showWeek()">Page of the Week</a>
Instead of returning week"weeknum".htm, it returns week"NaN".htm. I assume that it considers Monday to be the beginning of the week but, I'm not sure since it doesn't work. I tried to document.write the weeknum variable and got nothing. I'm fairly new at Javascript and it would help my understanding to find if this is a syntax or logic issue.
Any help is greatly appreciated!!!
myeyesglazeover