2009-12-23 143 views
-3

之間如何找到星期天是否兩者之間屬於dates.if週日存在減一日內2天檢查週日落在兩個日期

+2

你能更具體一點。哪個日期,哪個日期? – 2009-12-23 06:46:07

+2

@Ranjana:你問了12個問題,沒有接受任何答案,也從未投過票。這裏的交易是:您獲得答案,提供答案的用戶獲得聲譽..請盡你所能。謝謝! – lexu 2009-12-23 06:49:16

+1

-1你問問題或給某種任務? – PRR 2009-12-23 06:54:02

回答

1

如果我理解正確的區別,您正在尋找這樣的事情:

public static bool DoesIncludeSunday(DateTime startDate, DateTime endDate) 
{ 
    bool r = false; 
    TimeSpan testSpan = new TimeSpan(6, 0, 0, 0); 
    TimeSpan actualSpan =endDate - startDate; 

    if (actualSpan >= testSpan) { r = true; } 
    else 
    { 
     DateTime checkDate = endDate; 
     while (checkDate > startDate) 
     { 
      r = (checkDate.DayOfWeek == DayOfWeek.Sunday); 
      if(r) { break; } 
      checkDate = checkDate.AddDays(-1); 
     } 
    } 

    return r; 
} 

endDate需要是最近的日期。第一部分只是讓我們無法檢查開始日期和結束日期是否超過6天(它將包括一個星期日,因此不需要繼續)。第二位從endDate檢查星期天是否在那裏一次一天向後走。

一旦知道星期日是否是跨度的一部分,您可以根據調用代碼對日期進行任何更改。

0

只是因爲我喜歡聰明,我寫起來是這樣的:

public static int DaysExcludingSundays(DateTime start, DateTime end) 
{ 
return ((end - start).Days + 1) - ((((end - start).Days + 1) + (((int)start.DayOfWeek + 6) % 7))/7); 
} 

隨意複製並粘貼此代碼不理解這是什麼意思。我喜歡這個謎題。

拆毀了

int startOffset = ((int) start.DayOfWeek + 6) % 7; 
int totalInclusiveDays = (end - start).Days + 1; 
int numberOfSundays = (totalInclusiveDays + startOffset)/7; 
int numberOfDaysWithoutSundays = totalInclusiveDays - numberOfSundays;