首页 > 解决方案 > 计算日期范围内的天数c#

问题描述

更新

我在数据库中有一个旅行列表,其中包含不同的开始和结束日期,我想计算每次旅行与定义范围相对应的总天数。

例如:

我想在以下范围内查询去波士顿旅行的天数:

RangeEnd 是 27. Nov. 2017 RangeStart 是 1. Nov. 2017

这是我更新的代码:

 var travel = new List<Travel>
 {
     new Travel("Egypt", new DateTime(2017, 8, 4), new DateTime(2017, 8, 24) ),
     new Travel("Spain", new DateTime(2017, 11, 1), new DateTime(2017, 12, 10) ),
     new Travel("Detroit", new DateTime(2017,9, 15), new DateTime(2017, 12, 20) ),
     new Travel("Boston", new DateTime(2017,10, 15), new DateTime(2017, 11, 20) ),

 };
 var rangeStart = new DateTime(2017, 11, 1);
 var rangeEnd = new DateTime(2017, 11, 27);
 var Trip = travel.Where(t => t.Country=="Boston");
 var sumOfDays= Trip.Sum(t => ????);

本案例的预期结果为 20 天。任何人都可以帮忙吗?

标签: c#ienumerable

解决方案


这可以在 1 行中完成

var Trip = travel.Where(t => t.Country == "Boston").Select(x => (x.EndDate - x.StartDate).TotalDays).FirstOrDefault();

您需要第一个或默认值,以防有 0 个结果或超过 1 个 recuslt


推荐阅读