public class DatumRegeln
{
    public int korrigiereMonat(int monat)
    {
        if (monat < 1)  return 1;
        if (monat > 12) return 12;
        return monat;
    }

    public int korrigiereJahr(int jahr)
    {
        if (jahr < 1)    return 1;
        if (jahr > 2500) return 2500;
        return jahr;
    }

    public int korrigiereTag(int tag, int monat, int jahr)
    {
        int maxTage = tageImMonat(monat, jahr);

        if (tag < 1)   return 1;
        if (tag > maxTage) return maxTage;
        return tag;
    }

    public boolean istSchaltjahr(int jahr)
    {
        if (jahr % 400 == 0) return true;
        if (jahr % 100 == 0) return false;
        return jahr % 4 == 0;
    }    

    public int tageImMonat(int monat, int jahr)
    {
        if (monat == 1)  return 31;
        if (monat == 2)  return istSchaltjahr(jahr) ? 29 : 28;
        if (monat == 3)  return 31;
        if (monat == 4)  return 30;
        if (monat == 5)  return 31;
        if (monat == 6)  return 30;
        if (monat == 7)  return 31;
        if (monat == 8)  return 31;
        if (monat == 9)  return 30;
        if (monat == 10) return 31;
        if (monat == 11) return 30;
        return 31;
    }
}