一周的开始和结束时间
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.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
}
我有这个字符串代表开始时间(从午夜开始的秒数)和从周日到周六的持续时间(以秒为单位)。
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.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
}