一周的开始和结束时间

Start and End times of the week

我有这个字符串代表开始时间(从午夜开始的秒数)和从周日到周六的持续时间(以秒为单位)。

0 0 79200 21600 36000 18000 0 0 21600 43200 0 0 0 0

崩溃

0 0表示星期天没有开始或结束
79200 21600 表示周一晚上 10 点开始,周二凌晨 4 点结束
36000 18000 表示周二上午 10 点开始,周二下午 3 点结束
0 0 表示星期三没有开始或结束
21600 43200 表示星期四早上 6 点开始,星期四下午 6 点结束
0 0 表示星期五没有开始或结束
0 0 表示星期六没有开始或结束

以上代表以下

我如何报告每一天的开始时间和结束时间。考虑到 window 可以跨越午夜。

我目前有这个

int monstart;
TimeSpan monstartint = TimeSpan.FromSeconds(monstart);
int monduration;
int monend = monstart + monduration;

但这正确显示了开始时间,但它显示结束时间为 1。04:00:00

我想要这样的东西

星期一 22:00:00 --> 星期二 04:00:00

假设您可以使用 string.Splitint.Parse 将您的值放入两个数组:startTimesdurations,每个数组的长度为 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 

}