gpt4 book ai didi

c# - 查找下一个最近的日期

转载 作者:行者123 更新时间:2023-11-30 13:16:50 25 4
gpt4 key购买 nike

我有一些日期当前存储为字符串列表。

例如:

List<string> dates = new List<string>();
dates.Add("1/10/14");
dates.Add("2/9/14");
dates.Add("1/15/14");
dates.Add("2/3/14");
dates.Add("2/15/14");

(日期格式为mm/dd/yy)

我将接受用户的输入(也是 mm/dd/yy 格式),但作为字符串。

现在,我想在数组中查找距离用户输入日期最近的日期。

例如,如果用户输入 "1/13/14",输出应该是 "1/15/14"。如果用户输入 "2/5/14",则下一个最接近的日期是 "2/9/14"。但是,如果用户输入的日期晚于最后一个日期(例如 "3/1/14"),它仍然会返回数组中的最后一个日期,即 "2/15/14")

我知道在某些时候你必须转换为 DateTime 类型,但我无法弄清楚找到这样的日期的逻辑。

最佳答案

List<string> dates = new List<string>();
dates.Add("1/10/14");
dates.Add("2/9/14");
dates.Add("1/15/14");
dates.Add("2/3/14");
dates.Add("2/15/14");

var allDates = dates.Select(DateTime.Parse).OrderBy(d=>d).ToList();
var inputDate = DateTime.Parse("1/13/14");

var closestDate = inputDate >= allDates.Last()
? allDates.Last()
: inputDate <= allDates.First()
? allDates.First()
: allDates.First(d => d >= inputDate);

现在我只是解析字符串,但你应该单独处理它。这是简单的普通 LINQ,您也可以花点心思进行二进制搜索。

关于c# - 查找下一个最近的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22208245/

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