把连续日期组织起来的算法
一个日期数组,其中可能有连续的日期,要格式化成特定形式的字符串,例如:2010-8-1,2010-8-3,2010-8-4,2010-8-5,2010-8-10格式化成字符串“8.1;8.3-8.5;8.10”,可以用如下的算法:
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;