我正在寻找经典的asp或javascript解决方案:
我们希望在我们的网页上提供三周轮换的内容。
我想我可以做两个阵列,一个像$ Weeks [1,2,4,5,6,7,8 ... 52],另一个像$ DISPLAY [A,B,C,A,B, C,A,B ...... C],都有52个项目,抓住当前周,并确保第二个数组的计数与第一个匹配,但是想知道是否有更高效的东西?此外,我必须在1月1日重置这个,我宁愿继续滚动。
谢谢, 莫林
答案 0 :(得分:1)
为什么不设定基准日期,而不是制定一年中的每周,然后检查自那天起经过的周数。然后你可以使用numberOfWeeks mod numberOfChoices:
var baselineSunday = new Date();
//Jan. is 0, Feb. is 1, etc.
baselineSunday.setMonth(4);
baselineSunday.setDate(5);
baselineSunday.setFullYear(2013);
var currentDate = new Date();
var diffInWeeks = GetDifferenceInWeeks(baselineSunday, currentDate);
var choices = ["A", "B", "C"];
var choiceForThisWeek = choices[diffInWeeks % choices.length];
console.log(choiceForThisWeek);
function GetDifferenceInWeeks(week1, week2) {
var diffInMs = currentDate - baselineSunday;
var msPerDay = (1000*60*60*24);
var diffInDays = Math.floor(diffInMs/msPerDay);
var diffInWeeks = Math.floor(diffInDays/7);
return diffInWeeks;
}
由于周数差异仅基于自基线日期以来的毫秒数,因此轮换将继续适用于下个月,一年及以后。