1

根据当前时间,我需要计算商店是否实际营业。到目前为止,开放时间一直保持为TimeSpan

public TimeSpan OpeningTime { get; set; }
public TimeSpan ClosingTime { get; set; }

如何计算商店现在是否营业?我尝试了一些想法,但解决方案看起来很麻烦。一个原因是需要在 和 之间进行TimeSpan转换DateTimeTimeSpan开放时间的格式是否正确?当时单独上课会更有意义吗?

注:工作日单独处理

4

5 回答 5

5

它在以下情况下开放:

OpeningTime <= DateTime.Now.TimeOfDay <= ClosingTime
于 2013-03-04T22:21:43.473 回答
2

嗯, a是两次之间差异TimeSpan的度量,而不是实际时间

假设您使用来指示相对于午夜TimeSpan的开放和关闭时间,请尝试

TimeSpan currentTime = DateTime.Now.TimeOfDay;   
bool isOpen = currentTime > OpeningTime && currentTime < ClosingTime;
于 2013-03-04T22:25:16.783 回答
0

尝试类似:

var timeOfDay = DateTime.Now.TimeOfDay;
if (timeOfDay >= OpeningTime && timeOfDay < ClosingTime)
{
    // open now!
}
于 2013-03-04T22:23:49.940 回答
0

您可以使用DateTime.Now.TimeOfDay并与您的 2 个 TimeSpan 进行比较

    OpeningTime = new TimeSpan(9, 30, 0); // 9:30AM
    ClosingTime = new TimeSpan(17, 30, 0); // 5:30AM

    bool isOpen = DateTime.Now.TimeOfDay >= OpeningTime && DateTime.Now.TimeOfDay <= ClosingTime;
于 2013-03-04T22:26:32.490 回答
0
TimeSpan OpeningTime = new TimeSpan(8, 0, 0);
TimeSpan ClosingTime = new TimeSpan(16, 0, 0);

TimeSpan now = DateTime.Now - DateTime.Now.Date;

if (now > OpeningTime && now < ClosingTime)
{ 
    //...
}
于 2013-03-04T22:26:35.007 回答