大家好日子。我是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;
}
提前谢谢。
答案 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;
}