У меня есть приведенный ниже код, над которым я работаю со списком дат для первой недели текущего месяца.
public static List<DateTime> GetDates(int year, int month)
{
return Enumerable.Range(1, DateTime.DaysInMonth(year, month))
.Select(day => new DateTime(year, month, day))
.ToList();
}
Но проблема в том, что у меня есть все даты за текущий месяц.
Я хочу достичь следующего:
Day: SUN, MON, TUE, WED, THU, FRI, SAT
Date 1, 2, 3, 5, 6..
Как я могу достичь этого в C#?
Используя это:
DateTime today = DateTime.Today;
int currentDayOfWeek = (int) today.DayOfWeek;
DateTime sunday = today.AddDays(-currentDayOfWeek);
DateTime monday = sunday.AddDays(1);
// If we started on Sunday, we should actually have gone *back*
// 6 days instead of forward 1...
if (currentDayOfWeek == 0)
{
monday = monday.AddDays(-7);
}
var dates = Enumerable.Range(0, 6).Select(days => monday.AddDays(days)).ToList();
foreach (var date in dates) {
Console.WriteLine(date);
}
Мне удалось получить за текущую неделю. Но как я могу получить и день?
Результат:
04.05.2020 00:00:00
05.05.2020 00:00:00
06.05.2020 00:00:00
07.05.2020 00:00:00
08.05.2020 00:00:00
09.05.2020 00:00:00
Я хочу, чтобы мои выходные данные были:
ПН - 04.05.2020 ВТ - 05.05.2019. 2020