C# 计算出 今天是今年的第几个礼拜(PS:1月1号是第一个礼拜)

来源:互联网 发布:热血江湖 2.0发招优化 编辑:程序博客网 时间:2024/05/17 04:59

/// <summary>
   /// 根据time时间获取 改time 为今年的第几个星期
   /// </summary>
   /// <param name="time"></param>
   /// <returns></returns>
   private string getDayWeekthofYear(string strtime)
   {
       int weekth=2;

       if(!string.IsNullOrEmpty(strtime))
       {
          DateTime time=DateTime.Now;
          bool ret=DateTime.TryParse(strtime,out time);

          int year=time.Year;
         
          DateTime timefirstDay=Convert.ToDateTime(year.ToString()+"/01/01");
        
          DateTime timeSecondWeekofMonday=getSecondWeekofMonday(timefirstDay);

          if (timeSecondWeekofMonday.CompareTo(time)>0)
          {
              weekth = 1;
          }else
          {
              while (timeSecondWeekofMonday.AddDays(6).CompareTo(time)<0)
                {
                    weekth++;
                    timeSecondWeekofMonday= timeSecondWeekofMonday.AddDays(7);
                }
          }
       }

       return weekth.ToString().PadLeft(2,'0');
   }

   /// <summary>
   /// 获取一年中 第二个礼拜的第一天(周一)
   /// </summary>
   /// <param name="timefirstDay"></param>
   /// <returns></returns>
   private DateTime getSecondWeekofMonday(DateTime timefirstDay)
   {
        DateTime timeret = DateTime.Now;

        if(timefirstDay.DayOfWeek==DayOfWeek.Monday)
        {
             timeret=timefirstDay.AddDays(7);
        }
        else if (timefirstDay.DayOfWeek == DayOfWeek.Tuesday)
        {
            timeret = timefirstDay.AddDays(6);
        }
        else if (timefirstDay.DayOfWeek == DayOfWeek.Wednesday)
        {
            timeret = timefirstDay.AddDays(5);
        }
        else if (timefirstDay.DayOfWeek == DayOfWeek.Thursday)
        {
            timeret = timefirstDay.AddDays(4);
        }
        else if (timefirstDay.DayOfWeek == DayOfWeek.Friday)
        {
            timeret = timefirstDay.AddDays(3);
        }
        else if (timefirstDay.DayOfWeek == DayOfWeek.Saturday)
        {
            timeret = timefirstDay.AddDays(2);
        }
        else if (timefirstDay.DayOfWeek == DayOfWeek.Sunday)
        {
            timeret = timefirstDay.AddDays(1);
        }

        return timeret;
   }

0 0
原创粉丝点击