首页 > 解决方案 > 如何在 C# 中仅使用小时和分钟在两个 DateTime 之间添加条件?

问题描述

我正在尝试在ASP.NET MVC中编写一个酒店管理系统,我必须编写一个方法来禁止您在每天下午1:00到下午3:00之间将员工添加到数据库中。

我对 C# 中的Datetime类型非常不熟悉,这就是我所拥有的:

var hour1 = DateTime.Now.ToString("HH:mm");
hour1.setHour("1:00PM");

var hour2 = DateTime.Now.ToString("HH:mm");
hour2.setHour("3:00PM");


   if (DateTime.Now >= hour1 && DateTime.Now <= hour2 )
      {
            //do stuff
      }
   else
      {
            //do stuff
      }

我知道setHour甚至在Datetime上下文中都不存在,但这只是展示我想要实现的目标的一个例子。我无法在整个互联网上找到解决方案。

标签: c#

解决方案


禁止您在每天下午 1:00 到下午 3:00 之间将员工添加到数据库

无需转换为string. 只需使用该.Hour属性。

MSDN:

获取小时分量,表示为 0 到 23 之间的值。

var now = DateTime.Now;
const int onePM = 13;
const int threePM = 15;

if (now.Hour >= onePM && now.Hour < threePM)
{
    // do stuff
}
else
{
    // do stuff
}

注意:这是一个非常简单的示例,它仅根据 OP 的问题和代码示例的主体将时间与整个小时进行比较。如果说您在下午 3 点 15 分有截止时间,那将无法正常工作,因为我的代码不包括分钟数。

这是基于以下评论中的讨论。

更新

操作:

好吧,当我说下午 1:00 时,它已经有了分钟“ :00 ”,但我认为这并不重要,因为您的解决方案提供了准确的时间。不,没有截止。

太好了,谢谢。


推荐阅读