2017-04-27 45 views
0

我有一个日期时间值,我现在比较。 我尝试将两个日期转换为int,因为是不同的类型。比较不同类型的日期时间列>现在c#

这是我的代码:

Int64 NowDate = Convert.ToInt64(DateTime.Now.ToString("yyyyMMddhhmmss")); 

return mylist.Where(f => Convert.ToInt64(f.DateStart.ToString("yyyyMMddhhmmss")) > NowDate).ToList(); 

它的工作原理,但如果你一天的是21.00.00我有一个问题,convert.toint64删除00.00,我的号码是< nowdate。

+4

错误的假设。 DateTime是一个DateTime。没有必要转换为int。你有没有试过_f.DateStart Steve

+3

[如何在c#中比较日期]的可能重复(http://stackoverflow.com/questions/6592126/how-to-compare-dates-in-c-sharp) – Orangesandlemons

回答

0

要比较C#中的两个日期,您不必进行任何类型的转换。

你可以只写

mydate < DateTime.Now 

,也将努力!

因为日期时间实现IComparable,这意味着你可以彼此

0

之间比较两个日期转换日期时间为字符串产生很多问题。对我而言,你应该把日期保留为日期。你应该尝试这样的查询:

return mylist.Where(f => f.DateStart> Datetime.Now).ToList(); 

如果你想比较只有日期,您可以使用:

return mylist.Where(f => f.DateStart.Date > Datetime.Now.Date).ToList(); 

注意,如果你的DateStart字段是空的,它可以抛出一个异常。在这种情况下,你应该控制空值。