一周的开始和结束时间

时间:2015-11-03 05:44:02

标签: c# timespan dayofweek

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

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表示星期六没有开始或结束

以上代表以下

hours of days of week chart

如何报告每个日期的开始时间和结束时间。考虑到窗口可以跨越午夜。

我目前有这个

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

但这会正确显示开始时间,但结果显示为1.04:00:00

我想要这样的东西

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

1 个答案:

答案 0 :(得分:1)

假设您可以使用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 

}