我如何才能以每三個月一次的方式制作這個日期序列。例如。輸入是“2022-03-14”輸入是動態的,它取決于用戶輸入...我正在嘗試添加 10 天但不作業
我想要的輸出
[
"2022-03-24",
"2022-04-04",
"2022-04-14",
"2022-04-24",
"2022-05-04",
"2022-05-14",
"2022-05-24",
"2022-06-04",
"2022-06-14",
"2022-06-24",
]
我的代碼輸出磨損了
[
"2022-03-24",
"2022-04-14",
"2022-04-24",
"2022-05-14",
"2022-05-24",
"2022-06-14",
"2022-06-24",
"2022-07-14",
"2022-07-24",
]
function createSchedule(date, count){
date = new Date(date);
let day = date.getDate();// Get day in given date
let k = 0;
let days = k? [day - 10, day , day 10] : [day, day 10, day- 10];
let result = [];
if(day > 10){
k = 0
}else{
if(day > 20 ){
k = 1
}else{
k= 2
}
}
for(let i = 0; i < count; i ){
k= 1-k;
date.setDate(days[k]);
// When date overflows into next month, take last day of month
if (date.getDate() !== days[k]) date.setDate(0);
if (!k) date.setMonth(date.getMonth() 1);
result.push(date.toLocaleDateString("en-SE"));
}
return result
}
var dateRelease = new Date("03-14-2022");
var result = createSchedule(dateRelease, 9);
console.log(result)
uj5u.com熱心網友回復:
您嘗試中的一些問題:
- 之后
let k = 0,條件運算子 onk?將始終計算 之后的第二個運算式:,即[day, day 10, day- 10]. - 該陣列
[day, day 10, day- 10]未排序,但應該排序。 - 常數 0 和 1 和 2 是可以的,但是在這里使用一元加號看起來很奇怪。它可能只是 0、1 和 2。
- 賦值
k = 1 - k假設你的陣列中只有兩個條目days,但你有三個,所以使用模運算:k = (k 1) % 3
這是一個更正:
function createSchedule(date, count) {
date = new Date(date);
let day = date.getDate();
let firstDay = 1 (day - 1) % 10;
let days = [firstDay, firstDay 10, firstDay 20];
let k = days.indexOf(day);
let result = [];
for (let i = 0; i < count; i ) {
k = (k 1) % 3;
date.setDate(days[k]);
// When date overflows into next month, take last day of month
if (date.getDate() !== days[k]) date.setDate(0);
if (!k) date.setMonth(date.getMonth() 1);
result.push(date.toLocaleDateString("en-SE"));
}
return result;
}
var dateRelease = new Date("2022-03-14");
var result = createSchedule(dateRelease, 25);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483348.html
標籤:javascript
