C# 計算出 今天是今年的第幾個禮拜(PS:1月1號是第一個禮拜)

/// <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;
   }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章