我希望根据给定日期、开始时间和结束时间生成时间段。
输入格式如下:
这是开始时间和结束时间列表。
输入格式如下:
这是开始时间和结束时间列表。
[
{
"StartTime" : "10:00",
"endTime" : "14:00"
},
{
"StartTime" : "16:00",
"endTime" : "18:00"
}
]
额外的数据:
"SlotDuration": 60 //in minutes
"minStartTimeDufference": 15 // in minutes
如果输出是这样的
[
"10:00-11:00",
"10:15-11:15",
"10:30-11:30",
"10:45-11:45",
"11:00-12:00",
"11:15-12:15",
"11:30-12:30",
"11:45-12:45",
"12:00-13:00",
"12:15-13:15",
"12:30-13:30",
"12:45-13:45",
"13:00-14:00",
"16:00-17:00",
"16:15-17:15",
"16:30-17:30",
"16:45-17:45",
"17:00-18:00"
]
minSlotDuration是从开始时间到结束时间的时隙持续时间,minStartTimeDufference是考虑制作时隙的时间,我们可以说它也是一个持续时间。通过查看输出来获取更多想法。
What I tried:
let parseTime = (s) => {
let c = s.split(':');
return parseInt(c[0]) * 60 + parseInt(c[1]);
}
let convertHours = (mins) => {
let hour = Math.floor(mins / 60);
mins = mins % 60;
let converted = pad(hour, 2) + ':' + pad(mins, 2);
return converted;
}
let pad = (str, max) => {
str = str.toString();
return str.length < max ? pad("0" + str, max) : str;
}
let calculate_time_slot = (start_time, end_time, interval) => {
let i, formatted_time;
let time_slots = new Array();
for (let i = start_time; i <= end_time; i = i + interval) {
formatted_time = convertHours(i);
time_slots.push(formatted_time);
}
return time_slots;
}
let date = "20-07-2019"
let startTime = "10:00";
let endTime = "14:00";
let interval = 60; // in minutes
start_time = parseTime(startTime)
end_time = parseTime(endTime)
let times_ara = calculate_time_slot(start_time, end_time, interval);
console.log(times_ara);