Fix: Passt an, dass bei monatlichen Transaktionen der Tag entsprechend hergenommen wird

This commit is contained in:
2026-01-25 16:34:14 +01:00
parent c86c2dd888
commit 78add73278
2 changed files with 66 additions and 2 deletions

View File

@@ -16,4 +16,32 @@ class DateUtils {
final DateTime monthDate,
final int monthsToAdd,
) => DateTime(monthDate.year, monthDate.month + monthsToAdd);
/// Returns the number of days in a month, according to the proleptic
/// Gregorian calendar.
///
/// This applies the leap year logic introduced by the Gregorian reforms of
/// 1582. It will not give valid results for dates prior to that time.
static int getDaysInMonth(final int year, final int month) {
if (month == DateTime.february) {
final bool isLeapYear =
(year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
return isLeapYear ? 29 : 28;
}
const List<int> daysInMonth = <int>[
31,
-1,
31,
30,
31,
30,
31,
31,
30,
31,
30,
31,
];
return daysInMonth[month - 1];
}
}