Tage im Monat/Schaltjahre ermitteln

// Version 1:
// Ausgruf: int TageFebruar = 28 + ist_Schaltjahr(1999);
int __fastcall ist_Schaltjahr(int jahr)
{
    if (jahr % 4 == 0)
       if (jahr < 1582) return 1;
       else if (!(jahr % 100 == 0)) return 1;
            else if (jahr % 400 == 0) return 1;
    
    return 0;
}

// Version 2:
unsigned short GetDaysInMonth(unsigned short month, unsigned short year)
{
    static unsigned short GauDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    return GauDays[month - 1] + ((month == 2) && IsLeapYear(year));
}