У меня проблема с календарем, который я использую для получения меньшего количества недель в течение определенных месяцев. Например, это происходит со мной в сентябре 2019 года, где мой номер равен 5, или в июле 2018 года, который также равен 5. Как я могу это исправить? это мой текущий код:
private DateTime _calendarDate;
int numWeeks = NumberOfWeeks(_calendarDate.Year, _calendarDate.Month);
private int NumberOfWeeks(int year, int month)
{
return NumberOfWeeks(new DateTime(year, month, DateTime.DaysInMonth(year, month)));
}
private int NumberOfWeeks(DateTime date)
{
var beginningOfMonth = new DateTime(date.Year, date.Month, 1);
while (date.Date.AddDays(1).DayOfWeek != CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek)
date = date.AddDays(1);
return (int)Math.Truncate(date.Subtract(beginningOfMonth).TotalDays / 7f) + 1;
}
дополнительная информация о CultureInfo
Проблема в том, что она всегда возвращается ко мнена одну неделю меньше, поэтому мой календарь не отображается должным образом, и затем я получаю сообщение об ошибке:
Вот пример для апреля 2018 года, где вы даете мне 5 недель, а затем пропускается еще один, и поэтому я 'я получаю сообщение об ошибке
Может кто-нибудь догадаться, как я могу решить эту проблему?