比如现在List<DateTime>中存放的是:2008年8月1日
2008年8月4日
2008年8月5日
2008年8月7日
2008年8月11日
2008年8月12日
2008年8月13日
2008年8月15日
2008年8月18日
2008年8月19日
2008年8月21日
2008年8月22日
2008年8月27日
2008年8月29日请问现在如何将它按周时间段及不连续时间段划分.列如:开始时间:2008年8月1日结束时间:2008年8月1日 开始时间:2008年8月4日
结束时间:2008年8月5日 开始时间:2008年8月7日结束时间:2008年8月7日 开始时间:2008年8月11日结束时间:2008年8月13日....
2008年8月4日
2008年8月5日
2008年8月7日
2008年8月11日
2008年8月12日
2008年8月13日
2008年8月15日
2008年8月18日
2008年8月19日
2008年8月21日
2008年8月22日
2008年8月27日
2008年8月29日请问现在如何将它按周时间段及不连续时间段划分.列如:开始时间:2008年8月1日结束时间:2008年8月1日 开始时间:2008年8月4日
结束时间:2008年8月5日 开始时间:2008年8月7日结束时间:2008年8月7日 开始时间:2008年8月11日结束时间:2008年8月13日....
解决方案 »
- asp.net中的treeview的问题
- 我想问下从一个页面跳转另一个页面,另一个页面实现全屏效果,当时,浏览器不弹出 阻止窗口呢
- 数据库中存放图片地址 如何读取图片
- 如何在一个页面中使用两次atlas技术?(认为分少,再加)
- 求救!我想统计访问者(会员或游客)点击某信息的次数。用于系统中所有需要统计点击次数的模块。我想设计一个统计页面,当用户请求的页面
- 怎样才能看到bin文件夹里.dll文件的源码呢?
- 存储过程分页问题?
- 独自一人出差北京,无聊啊
- 菜鸟:请问ASP.NET的FORM下布局设计问题
- 求教:关于网页上出现的附件打开的问题
- 如何取出数据库(sql server)中的日期,转换为DateTime
- Asp.Net 导入Excel数据问题
或
第二个和第一个 虽然连续,但是属于两个周,就分到两个组里
或
第二个和第一个 中间有假日,就分到两个组里
其他
分到一个组里;但是,你的list中有没有 周六周日或假日,如果没有好办(不就自然分组了吗?),如果有如何处理?
{
List<DateTime> l = new List<DateTime>{
Convert.ToDateTime("2008年8月1日"),
Convert.ToDateTime("2008年8月4日"),
Convert.ToDateTime("2008年8月5日"),
Convert.ToDateTime("2008年8月7日"),
Convert.ToDateTime("2008年8月11日"),
Convert.ToDateTime("2008年8月12日"),
Convert.ToDateTime("2008年8月13日"),
Convert.ToDateTime("2008年8月15日"),
Convert.ToDateTime("2008年8月18日"),
Convert.ToDateTime("2008年8月19日"),
Convert.ToDateTime("2008年8月21日"),
Convert.ToDateTime("2008年8月22日"),
Convert.ToDateTime("2008年8月27日"),
Convert.ToDateTime("2008年8月29日") };
int week = 0; //记录某日期是第几周
DateTime t = DateTime.Now; //保存上个日期
bool start = false; //是否重新开始一个周期的计算
foreach (DateTime dt in l)
{
if (!start)
{
Console.WriteLine("开始时间:" + dt.ToString("yyyy年MM月dd日"));
week = GetWeekOfYear(dt);
t = dt;
start = true;
}
else
{
if (dt.CompareTo(t.AddDays(1)) != 0)
{
Console.WriteLine("结束时间:" + t.ToString("yyyy年MM月dd日") + "\r\n");
Console.WriteLine("开始时间:" + dt.ToString("yyyy年MM月dd日"));
week = GetWeekOfYear(dt);
t = dt;
start = true;
continue;
}
if (GetWeekOfYear(dt) == week)
{
t = dt;
continue;
}
Console.WriteLine("结束时间:" + dt.ToString("yyyy年MM月dd日") + "\r\n");
start = false;
}
}
Console.WriteLine("结束时间:" + t.ToString("yyyy年MM月dd日") + "\r\n");
} private int GetWeekOfYear(DateTime dt)
{
GregorianCalendar gc = new GregorianCalendar();
return gc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
}