获取当前周的所有日期

use*_*098 2 c# datetime c#-4.0

假设我将周日 - 周六视为一周,如何在c#中获取当前周的所有日期?

例如,当前日期是30th March 2017,我需要的输出是,

26-March-2017,
27-March-2017,
28-March-2017,
29-March-2017,
30-March-2017,
31-March-2017,
01-April-2017
Run Code Online (Sandbox Code Playgroud)

Dmi*_*nko 7

您可以尝试DateTimeFormat找出当前周的开始日期和Linq来生成字符串:

  DateTime startOfWeek = DateTime.Today.AddDays(
      (int) CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek - 
      (int) DateTime.Today.DayOfWeek);

  string result = string.Join("," + Environment.NewLine, Enumerable
    .Range(0, 7)
    .Select(i => startOfWeek
       .AddDays(i)
       .ToString("dd-MMMM-yyyy")));
Run Code Online (Sandbox Code Playgroud)

en-US文化的情况下你会得到(周从周日开始)

26-March-2017,  // <- starts from Sunday
27-March-2017,
28-March-2017,
29-March-2017,
30-March-2017,
31-March-2017,
01-April-2017
Run Code Online (Sandbox Code Playgroud)

如果是ru-RU文化,你会得到(周从周一开始)

27-?????-2017,  // <- Starts from Monday
28-?????-2017,
29-?????-2017,
30-?????-2017,
31-?????-2017,
01-??????-2017,
02-??????-2017
Run Code Online (Sandbox Code Playgroud)