我想比较当前日期给出的日期,我希望通过使用linq得到天数
感谢, Vara Prasad.M
答案 0 :(得分:2)
我认为没有必要使用Linq。
DateTime givenDate; // given by earlier code
DateTime currentDate = DateTime.Now;
TimeSpan timeSpan = givenDate.Subtract(currentDate);
int timeSpanInDays = timeSpan.Days;
答案 1 :(得分:1)
我假设您正在循环包含日期的内容。我使用了DataTable
和DataRow
我完全不了解你的情况,所以根据你的需要调整它。
我创建了这个foreach循环
DateTime currentDate = DateTime.Now;
foreach (System.Data.DataRow row in new System.Data.DataTable().Rows)
{
DateTime givenDate = DateTime.Parse(row[0].ToString());
TimeSpan timeSpan = givenDate.Subtract(currentDate);
if (timeSpan.Days > 10)
{
Foo(timeSpan.Days);
}
}
使用Resharper的强大功能,它已被转换为
DateTime currentDate = DateTime.Now;
foreach (TimeSpan timeSpan in
new System.Data.DataTable().Rows.Cast<DataRow>()
.Select(row => DateTime.Parse(row[0].ToString()))
.Select(givenDate => givenDate.Subtract(currentDate))
.Where(timeSpan => timeSpan.Days > 10))
{
Foo(timeSpan.Days);
}
显然,这可能需要根据您的需要进行调整。我不确定你需要什么日子,所以我在这些日子里加了一个if
。如果您只是将值传递给某个地方,或者使用该值,LINQ查询将丢弃.Where(...)
。
我希望这会有所帮助。我不清楚你需要什么LINQ ...但是有一些LINQ。 :)
(除了喜欢这个工具之外,我与JetBrains或Resharper没有联系。)