62,046
社区成员
发帖
与我相关
我的任务
分享
private void CheckListDate()
{
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);
}