gpt4 book ai didi

c# - 如何获得最近的日期?

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:30 25 4
gpt4 key购买 nike

我在 List 中有日期列表。用户输入的日期将与日期列表进行比较。

如果列表包含该特定日期,则目标日期将是该日期。如果列表不包含该特定日期,则应将最近的日期作为目标日期。

为此,我尝试在 LINQ 中使用 Min:

var nearestDiff = getAlldates.Min(date => Math.Abs((date - targetDate).Ticks));
var nearest = getAlldates.Where(date => Math.Abs((date - targetDate).Ticks) == nearestDiff).First();

但是我的 getAlldates 是一个列表,而 targetDate 是字符串。所以我在这里遇到问题。

如何解决?

最佳答案

您可以简单地首先使用 DateTime.Parsestring 解析为 DateTime :

var nearestDiff = getAlldates
.Select(x => DateTime.Parse(x)) // this one
.Min(date => Math.Abs((date - targetDate).Ticks));

或者改进版,感谢Gusdor的输入和 Jeppe Stig Nielsen :

getAlldates.Min(x => (DateTime.Parse(x) - targetDate).Duration());

如果日期格式不是当前文化的格式,您可能想要指定要使用解析的日期格式或文化。 (例如,您可能想使用 DateTime.ParseExact)

关于c# - 如何获得最近的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com