我有这个字符串表示从星期日到星期六的开始时间(从午夜开始的秒数)和持续时间(以秒为单位)。
0 0 79200 21600 36000 18000 0 0 21600 43200 0 0 0 0
细分
0 0表示星期日没有开始或结束 79200 21600表示周一凌晨4点开始,周二凌晨4点 36000 18000表示星期二上午10点结束,星期二下午3点 0 0表示星期三没有开始或结束 21600 43200表示周四下午6点开始上午6点 0 0表示星期五没有开始或结束 0 0表示星期六没有开始或结束
以上代表以下
如何报告每个日期的开始时间和结束时间。考虑到窗口可以跨越午夜。
我目前有这个
int monstart;
TimeSpan monstartint = TimeSpan.FromSeconds(monstart);
int monduration;
int monend = monstart + monduration;
但这会正确显示开始时间,但结果显示为1.04:00:00
我想要这样的东西
星期一22:00:00 - >星期二04:00:00
答案 0 :(得分:1)
假设您可以使用string.Split
和int.Parse
将您的值分成两个数组:startTimes
和durations
,每个数组长度为7。
for (int day = 0; day < 7; day++)
{
TimeSpan start = TimeSpan.FromSeconds(startTimes[day]);
TimeSpan duration = TimeSpan.FromSeconds(durations[day]);
TimeSpan end = start + duration;
int endDay = day;
if (end.TotalHours > 24)
{
end = end - TimeSpan.FromHours(24);
endDay = (endDay + 1)% 7;
}
// Period is from day, start to endDay, end
// Convert day to (DayName) and output it
}