最短日期和最长日期
我有一个日期列表如下
List nameList = new List(); nameList.Add("20120618PM"); nameList.Add("20120622PM"); nameList.Add("20120622AM"); nameList.Add("20120628PM"); nameList.Add("20120702PM"); nameList.Add("20120629AM"); nameList.Add("20120629PM");
我想从列表中找到MAXDATE和MIN DATE。请告诉我如何继续。
问候,
鳢
如果日期格式为yyyyMMdd,那么即使使用AM / PM也可以将其排序为字符串
nameList.Max()
如果您有一年加上小时/分钟和上午/下午那么您必须解析为DateTime。 我推荐解析,不像其他答案中所建议的那样。
那是什么格式的? "yyyyMMddtt"
?
AM PM有约会。 没有时间陪AM / PM。 所以我假设AM是00:00:00,PM是12:00:00
首先纠正您的格式然后使用它
List temp = nameList.Select(x => DateTime.ParseExact(x, "yyyyMMddtt", CultureInfo.InvariantCulture)).ToList();
然后
temp.Min("yyyyMMddtt"); temp.Max("yyyyMMddtt");
// 1. Convert your string list to datetimes IEnumerable dates = nameList.Select(m => DateTime.Parse(m, yourFormatProvider)); // 2. Get first and last date DateTime maxDate = dates.Max(); DateTime minDate = dates.Min();
如果我不得不猜测,我似乎在做什么。 我会这样做的
var dates = nameList.ConvertAll(s => { var dateString = s.SubString(6); var timeString = s.SubString(7, 2); var date = DateTime.Parse(dateString); if (timeString == "PM") { date = date.AddHours(12); } return date; }); var max = date.Max(); var min = date.Min();
由于您在注释中将格式指定为yyyyMMdd
,因此需要从字符串中修剪PM
和AM
List dateList = nameList.Select(x => DateTime.ParseExact( x.TrimEnd("PM".ToCharArray()).TrimEnd("AM".ToCharArray()), "yyyyMMdd", CultureInfo.InvariantCulture) ).ToList(); var Minimum = dateList.Min(); var Maximum = dateList.Max(); Console.WriteLine(Minimum.ToString()); Console.WriteLine(Maximum.ToString());
这会给你:
6/18/2012 12:00:00 AM
7/2/2012 12:00:00 AM上述就是C#学习教程:最短日期和最长日期分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1016294.html