2009-12-23 135 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;