把连续日期组织起来的算法
一个日期数组,其中可能有连续的日期,要格式化成特定形式的字符串,例如:2010-8-1,2010-8-3,2010-8-4,2010-8-5,2010-8-10格式化成字符串“8.1;8.3-8.5;8.10”,可以用如下的算法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | private string GetFormatDateString() { List<DateTime> timeList = new List<DateTime> { new DateTime(2010,8,1), new DateTime(2010,8,3), new DateTime(2010,8,4), new DateTime(2010,8,5), new DateTime(2010,8,6), new DateTime(2010,8,7), new DateTime(2010,8,9), new DateTime(2010,8,11), new DateTime(2010,8,12) }; string arr = "" ; int lastIndex = -1; for ( int j = 0; j < timeList.Count; j++) { if (j > lastIndex) { int i = 1; while (timeList.Contains(timeList[j].AddDays(i))) { i++; } if (i == 1) { arr += timeList[j].Month + "." + timeList[j].Day + ";" ; lastIndex = j; } else { arr += timeList[j].Month + "." + timeList[j].Day + "-" + timeList[j + i - 1].Month + "." + timeList[j + i - 1].Day + ";" ; lastIndex = j + i - 1; } } } arr = arr.TrimEnd( ';' ); return arr; } |
作者:Qubook
出处:http://www.cnblogs.com/hard/
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
联系方式: 个人QQ 1005354833;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步