C#检查给定的日期和时间

时间:2017-02-01 09:08:23

标签: c#

大家好日子。我是C#的新手,但我似乎无法理解DateTime的工作原理。 我想做的就是检查如果a( givenday )=今天和时间是晚上7点我想要返回true。这是正确的方法吗?

记下 ActionDate 是一个由用户输入的字段。

DateTime dateA = Convert.ToDateTime(ActionDate);

int a = dateA.Year;
int b = dateA.Month;
int c = dateA.Day;
int d = timeA.Hour;
int e = timeA.Minute;

var newDate = new DateTime(a, b, c, d, e, 0);

DateTime end = Convert.ToDateTime(newDate);
DateTime start = Convert.ToDateTime(A);

TimeSpan span = end.Subtract(start);
Decimal minutes = Convert.ToDecimal(span.TotalMinutes);

if 
{
return true;
} else
{
return false;
}

提前谢谢。

3 个答案:

答案 0 :(得分:1)

检查提供日期是否为今天且是晚上7点的方法是使用DateTime.Now

请注意,19是晚上7点,7是早上7点,Hour属性使用24小时格式。

bool IsCurrentDayAnd7(DateTime dt) => dt.Date == DateTime.Now.Date && dt.Hour == 19;

正如@TimSchmelter所述,您可以使用DateTime.Today

bool IsCurrentDayAnd7(DateTime dt) => dt.Date == DateTime.Today && dt.Hour == 19;

答案 1 :(得分:0)

你的代码太复杂了。首先,将该用户输入转换为日期,并将其与当前日期和时间进行比较。

DateTime dateA = Convert.ToDateTime(ActionDate);
if (dateA.Date == DateTime.Today && dateA.Hour == 19)
{
    //it is current date and hour is 7pm
}

或者,检查用户的输入是否正常,如下所示:

DateTime dateA;
if (!DateTime.TryParse(ActionDate, out dateA))
{
   //alert user that he's entered wrong date 
}

编辑: 正如Tim Schmelter指出的那样,使用DateTime.Today代替DateTime.Now.Date

,代码更具可读性

答案 2 :(得分:0)

您可以使用Date属性将日期与当前日期进行比较。

if (newDate.Date == DateTime.Now.Date && newDate.Hour == 19)
{
 return true;
}