Написал функцию на определение количества дней в месяце, вроде бы все до ужаса просто, но этот код работает коряво по непонятной мне причине. Например, в марте и октябре 2024 года определяет по 30 дней, а должно быть 31 день. Остальные месяцы отрабатывают корректно. Может кто уже сталкивался с аналогичной проблемой? Буду очень благодарен за дельный совет! Код ниже можно протестить на DartPad.
int getDaysInMonth(DateTime date) {
// Создаем объект DateTime для первого дня следующего месяца
DateTime firstDayOfNextMonth = (date.month < 12)
? DateTime(date.year, date.month + 1, 1)
: DateTime(date.year + 1, 1, 1);
// Вычитаем один день, чтобы получить последний день текущего месяца
DateTime lastDayOfMonth = firstDayOfNextMonth.subtract(Duration(days: 1));
// Возвращаем день последней даты, который является количеством дней в месяце
return lastDayOfMonth.day;
}
void main() {
DateTime date = DateTime(2024, 3, 1); // Пример: 1 марта 2024 года
int daysInMonth = getDaysInMonth(date);
print("Количество дней в месяце: $daysInMonth");
}