2017-02-01 71 views
1

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

记下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; 
} 

在此先感谢您。

+1

为什么要将DateTime转换为DateTime? –

+0

假设'ActionDate'已经是'DateTime'这就是你需要的全部内容:'返回ActionDate.Date == DateTime.Today && ActionDate.Hour == 19;'。如果你想包括分钟添加'&& ActionDate.Minutes == 0' –

+0

我不确定所有先生。只是把这个stackoverflow的答案,所以即时通讯也试了出来。 –

回答

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 
} 

编辑: 作为添Schmelter注意,代码有点更具可读性使用DateTime.Today代替DateTime.Now.Date

+0

代替'DateTime.Now.Date',你可以使用'DateTime.Today' –

+0

如果我想让它成为晚上7点,我只把它变为19?或1900? –

+1

19.我编辑了代码。如果你想检查分钟数,你可以这样做:'if(dateA.Date == DateTime.Now.Date && dateA.Hour == 19 && dateA.Minute == 0)' – Nino

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; 
+0

代替'DateTime.Now.Date',您可以使用'DateTime.Today' –

+0

@TimSchmelter感谢您使代码更加整洁 – TheLethalCoder

0

可以使用Date属性与当前日期比较日期。

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

您可以使用'DateTime.Today'代替'DateTime.Now.Date' –

+0

@TimSchmelter任何性能影响或两者之间的显着差异? – Mairaj

+0

当然,'Now'和'Date'需要做计算并创建一个新的'DateTime'实例。但除此之外,它更具可读性,因为你想与'Today'比较' –