Попытка получить количество недель, отображаемое в календаре в месяце.C#

Место общения программистов C#
Ответить
Anonymous
 Попытка получить количество недель, отображаемое в календаре в месяце.

Сообщение Anonymous »

Я просто хочу, чтобы мой метод возвращал количество недель в данном месяце, отображаемое в календарях строками. Кажется, я столкнулся с проблемой, когда дошел до июня 2025 года. Он содержит 30 дней, распределенных по 6 строкам календаря. Для справки см. Outlook, средство выбора даты MudBlazor или любой другой календарь.

Код: Выделить всё

private static int GetWeeksInMonth(DateTime date)
{
Calendar calendar = CultureInfo.CurrentCulture.Calendar;
DateTime firstDay = new(date.Year, date.Month, 1);
int days = DateTime.DaysInMonth(date.Year, date.Month);
DateTime lastDay = new(date.Year, date.Month, days);

int firstWeek = calendar.GetWeekOfYear(firstDay, CalendarWeekRule.FirstDay, firstDay.DayOfWeek);
int lastWeek = calendar.GetWeekOfYear(lastDay, CalendarWeekRule.FirstDay, lastDay.DayOfWeek);

return (lastWeek - firstWeek) + 1;
}
Мой метод продолжает возвращать 5, а не 6. firstWeek — 23, а lastWeek — 27. Кажется, этот метод работает для любого другого месяца года.< /п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... in-a-month
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»