给我2个日期,另存为2个数字[小时,工作日],其中小时可以是0-23,而工作日可以是1-7。然后,我尝试生成其间的所有小时数,例如[13,2]和[2,3]会生成:
[13,2]
[14,2]
[15,2]
...
[0,3]
[1,3]
[2,3]
我还有2个日期作为日期时间,但是我不知道这些日期是否更容易使用。这两个日期之间相隔不超过几天,而且它们从未跨过周末。
答案 0 :(得分:1)
您可以定义一个let mut file = File::create("model.json").expect("fail creating file");
let json = r#"{"key1": "value1", "key2": "value2"}"#;
file.write_all(json.as_bytes()).expect("fail writing data");
日期函数,该函数依赖next
选择下一个小时和一天,然后可以通过一个简单的%
循环生成范围内的所有日期:
while
答案 1 :(得分:0)
使用两个Date
对象可能更容易。
像这样:
var date1 = new Date(2018, 11, 20, 13);
var date2 = new Date(2018, 11, 21, 3);
var result = [];
while(date1.getTime() <= date2.getTime()) {
result.push(new Date(date1.getTime()))
date1.setHours(date1.getHours() + 1);
}
console.log(result)
答案 2 :(得分:0)
您可以执行以下操作:
const getDate = (h, d) => {
let date = new Date()
date.setHours(h)
date.setDate(date.getDate() - date.getDay() + d);
return date
}
const generateRange = (s, e) => {
let [startHour, startDay] = s, [endHour, endDay] = e, result = []
startDate = getDate(startHour, startDay), endDate = getDate(endHour, endDay)
while (startDate < endDate) {
startDate.setHours(startDate.getHours() + 1)
result.push([startDate.getHours(), startDate.getDay()])
}
return result
}
console.log(generateRange([13, 2], [2, 3]))
console.log(generateRange([11, 1], [3, 2]))
这个想法是创建2个日期,然后在while
循环中继续添加小时数,直到您的开始日期不再小于结束日期为止。