我可以选择哪些选项是星期几。我想在当前选定的日期中添加/减去天数。
我遇到的问题是当我必须减去 8 天或更长时间到当天时。我变得不确定了。我知道我超出了范围,但我无法为这种情况找到正确的解决方案......
我发现新的失败,如果是星期天,并添加 1 天,给出未定义。
当我添加 8 天或更长时间时似乎工作正常..
我错过了什么?问候
var days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
var select = document.getElementById("daysSelector");
function sumDays(index, numDays) {
var i;
console.log('index: ' + index);
if (numDays < 0){
var diff = parseInt(index) + parseInt(numDays);
console.log(diff);
if (diff < 0){
i = days.length + diff; // Here is the problem
}else{
i = parseInt(diff) - parseInt(numDays % days.length);
}
}else{
i = parseInt(index) + parseInt(numDays % days.length);
}
return days[i];
}
var text = document.getElementById("days");
document.getElementById("addDays").onclick = function() {
console.log(sumDays(select.value,text.value ));
}
<select id="daysSelector">
<option value="0">Monday</option>
<option value="1">Tuesday</option>
<option value="2">Wed</option>
<option value="3">Thursday</option>
<option value="4">Friday</option>
<option value="5">Saturday</option>
<option value="6">Sunday</option>
</select>
<input type="number" id="days"><br>
<button id="addDays">Add Days</button><br>
这将解决问题(https://codepen.io/anon/pen/MoJdYG(:
function sumDays(index, numDays) {
var isNegative = parseInt(numDays, 10) > 0 ? false : true;
var i = parseInt(index, 10) + parseInt(numDays, 10) % days.length;
if (isNegative) {
i = days.length + i;
}
return days[i % days.length];
}