希望一切都好起来!
我希望我已经解决了这个问题,但看起来我们今天早上遇到了一些错误。
这是一个 asp.net web 应用程序,这部分是用 c# 编写的。我们使用 openTime、closeTime 和 15 分钟的 Interval 动态填充下拉列表,它们都是TimeSpan
.
TimeSpan interval = new TimeSpan(0,15,0);
for (TimeSpan i = openTime; i <= closeTime; i = i.Add(interval))
{
string stringTime = i.ToString();
ddlTime.Items.Add(new ListItem(stringTime, stringTime));
}
如果时间没有超过午夜,这很有效。前任:
- 开放时间:07:00(上午 7:00)
- 关闭时间:10:00(上午 10:00)
将按预期填充:
- 07:00:00
- 07:15:00
- 07:30:00
- 07:45:00
- .
- .
- 10:00:00
这不起作用的地方是开放时间在午夜之前开始,而关闭时间在之后开始。
- 开放时间:11:00(上午 11:00)
- 关闭时间:02:00(凌晨 2:00)
我需要填充
- 11:15:00
- 11:30:00
- 11:45:00
- .
- .
- .
- 2:00:00
但正如您可以很快看出的那样,循环不会运行,因为在这种情况下 openTime 不是 <= to closeTime。
简单地创建另一个 for 循环来检查 closeTime <= openTime 是否不会给出所需的结果。我会得到:
- 02:00:00
- 02:15:00
- 02:30:00
- .
- .
- .
- 11:00:00
在这个主题上更有经验的人能否提供成功完成这项工作所需的逻辑。
谢谢你的时间,克里斯。