日期:2014-05-17  浏览次数:21073 次

如何计算指定时段算的所有周及周的时间段和星期几
例如:
开始时间:2013-07-01
结束时间:2013-08-31
想要的结果:
把这段时间内所有的周都列出来,如下所示,并指定当前系统时间的这个周为当前周。
第6周(13年08月05日-13年08月11日)



------解决方案--------------------
这个用当前时间减去开始时间除以7应该就可以了…

DateTime dtStart = DateTime.Parse("2013-07-01");
DateTime dtEnd = DateTime.Parse("2013-08-31");
DateTime dtNow = DateTime.Now;
if (dtNow < dtEnd)
{
     TimeSpan ts = dtNow - dtStart;
     int week = ts.Days % 7 == 0 ? ts.Days / 7 : (ts.Days / 7) + 1;
     MessageBox.Show(days.ToString());
}
else
{
     MessageBox.Show("过期了");
}

------解决方案--------------------
protected void Page_Load(object sender, EventArgs e)
        {
            DateTime beginDate = DateTime.Parse("2013-07-01"); 
            DateTime endDate = DateTime.Parse("2013-08-31");
            this.Label1.Text = getDateString(beginDate, endDate);
        }

        private string getDateString(DateTime beginDate, DateTime endDate)
        {
            if (beginDate < endDate)
            {
                int num = beginDate.DayOfYear % 7 == 0 ? beginDate.DayOfYear / 7 : beginDate.DayOfYear / 7 + 1;
                string str = "第" + num.ToString() + "周 " + beginDate.ToShortDateString() + " " + beginDate.AddDays(7).ToShortDateString() + "    ";