我試圖基於以下條件日期列表如下工作的日期列表:生成
如果今天是星期三和之後下午6:00 或它是後星期三,然後生成下一個工作周。
否則生成當前工作周。
工作周定義爲星期一至星期五。
因此,從谷歌上搜索,從這裏拉兩個答案到目前爲止,我有這個擴展,它給了我根據當天的下一個出現的指定日:How to get the date of the next Sunday?
我:
public static DateTime Next(this DateTime dt, DayOfWeek startoOfWeek)
{
var start = (int)dt.DayOfWeek;
var target = (int)startoOfWeek;
if (target <= start)
{
target += 7;
}
return dt.AddDays(target - start);
}
從拉也有以下工作日內:
var daysOfWeek = Enum.GetValues(typeof(DayOfWeek))
.OfType<DayOfWeek>()
.Skip(1)
.TakeWhile(day => day != DayOfWeek.Saturday)
.ToList();
我開始對它進行測試,例如:
foreach (var day in daysOfWeek)
{
Debug.WriteLine(DateTime.Now.Next(day).Date.ToString(CultureInfo.CurrentCulture));
}
由於今天是星期天16年4月24日,我拿到下週正確的輸出:
> 4/25/2016 0:00:00
> 4/26/2016 0:00:00
> 4/27/2016 0:00:00
> 4/28/2016 0:00:00
> 4/29/2016 0:00:00
但如果今天是星期三說16年4月27日,然後我得到:
> 5/2/2016 0:00:00
> 5/3/2016 0:00:00
> 5/4/2016 0:00:00
> 4/28/2016 0:00:00
> 4/29/2016 0:00:00
我越來越近了,但是還是我不知道是否有比我已經做了一個簡單的方法,如果有一個答案在那裏了。
你不似乎正在考慮時間部分 –