C.J*_*.J. 3 c# datetime datetime-format
我有一些日期当前存储为字符串列表.
例如:
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");
Run Code Online (Sandbox Code Playgroud)
(日期mm/dd/yy格式)
我将采用用户的输入(也是mm/dd/yy格式),但作为字符串.
现在,我想在数组中找到用户输入日期后最接近的日期.
例如,如果用户输入"1/13/14",则输出应为"1/15/14".如果用户输入"2/5/14",则下一个最近的日期是"2/9/14".但是,如果用户输入的日期晚于最后一个日期(例如"3/1/14",它将STILL返回数组中的最后一个日期"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);
Run Code Online (Sandbox Code Playgroud)
现在我只是解析字符串,但你应该单独处理它.这是简单的简单LINQ,你可以去看看并做二分搜索.
| 归档时间: |
|
| 查看次数: |
7629 次 |
| 最近记录: |