【发布时间】:2019-04-12 02:37:42
【问题描述】:
更新
我在数据库中有一个旅行列表,其中包含不同的开始和结束日期,我想计算每次旅行的总天数与定义的范围相对应。
例如:
我想查询以下范围内去波士顿的行程天数:
RangeEnd 是 2017 年 11 月 27 日 RangeStart 是 2017 年 11 月 1 日
这是我更新的代码:
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 天。 有人可以帮忙吗?
【问题讨论】:
-
那么
travel12TimesCount是否包含正确的数字?如果是这样,为什么不呢? -
不清楚你在问什么。你期望输出是什么,你得到了什么?
-
Sum(s => m.EndOfMonth那是什么m? -
如果你创建两个
DateTime对象并减去它们,你将得到一个TimeSpan。您可以从该对象读取天数。您还可以获得小时数(用于四舍五入)。 -
该示例的预期输出为 26 - 给你:dotnetfiddle.net/b3LOzn
标签: c# ienumerable