2014-05-21 150 views
0

我需要根據當前日期獲取上個星期六和上個星期日的上個星期六(例如,如果今天是2014年5月21日我需要得到2014年5月17日(星期六)和2014年5月11日(星期日)),如果今天是星期六,那麼它應該是今天的日期和最後的星期天(例如,如果今天是2014年5月24日,我應該得到5/18/2014)我需要在兩個日期文本框中指定日期範圍以指定日期範圍

這裏就是我試圖完成,但它不是給我正確的輸出

  DateTime currentDate = DateTime.Today; 
      int offset = currentDate.DayOfWeek - DayOfWeek.Sunday; 
      offset = (offset < 0) ? 6 : offset; 
      string strCulture = System.Globalization.CultureInfo.CurrentCulture.Name; 

      if (currentDate.DayOfWeek == DayOfWeek.Saturday) 
      { 
       txtStartDate.Text = strCulture == "en-US" ? currentDate.AddDays(-offset).ToString("MM-dd-yyyy") : currentDate.AddDays(-offset).ToString("dd-MM-yyyy") ; 
       txtEndDate.Text = strCulture == "en-US" ? currentDate.ToString("MM-dd-yyyy") : currentDate.ToString("dd-MM-yyyy"); 
      } 
      else 
      { 
       offset = currentDate.DayOfWeek - DayOfWeek.Saturday; 
       offset = (offset < 0) ? 6 : offset; 
       DateTime lastSaturday = DateTime.Today.AddDays(-offset); 
       offset = lastSaturday.DayOfWeek - DayOfWeek.Sunday; 
       offset = (offset < 0) ? 6 : offset; 
       DateTime lastSunday = lastSaturday.AddDays(-offset); 
       txtStartDate.Text = strCulture == "en-US"? lastSunday.ToString("MM-dd-yyyy"):lastSunday.ToString("dd-MM-yyyy"); 
       txtEndDate.Text = strCulture == "en-US" ? lastSaturday.ToString("MM-dd-yyyy") : lastSaturday.ToString("dd-MM-yyyy"); 
      } 

回答

1

你可以得到一週的一天DateTime.Now.DayOfWeek。 然後得到以前的週日通過減去天數等於一天的,因爲週日有0

int days = (int)DateTime.Now.DayOfWeek; 
DateTime lastSunday = DateTime.Now.AddDays(-days); 
0
var today = DateTime.Now.Date; 
DateTime lastSaturday, lastSunday; 
if(today.DayOfWeek == DayOfWeek.Saturday) 
{ 
    lastSaturday = today;   
} 
else 
{ 
    int offset = today.DayOfWeek - DayOfWeek.Monday; 

    var moday = today.AddDays(-offset);// Monday of current week 
    lastSaturday = monday.AddDays(-2); 
} 
lastSunday = lastSaturday.AddDays(-6); 
+0

嗨蘇丹感謝您的代碼,但我不明白爲什麼找到的星期一本週 – Yogesh

+0

如果今天是星期一,那麼如果變成0,最後一個星期六將是第19個而不是第17個 – Yogesh

+0

如果你能找到當前的星期一,你可以在算術上找到最後一個星期六和星期天。順便說一句,亞洲的一週的第一天是星期一。 :) – Sultan