if noch mit internen klammern verbessern???



  • bool datumIstGueltig(int tag,int monat,int jahr)
    {
    if (monat>0 && monat<=12) return true;
    if ((monat==1 OR monat==3 OR monat==5 OR monat==7 OR monat==8 OR monat==10 OR monat==12) && (tag>0 && tag<=31)) return true;
    if ((monat==4 OR monat==6 OR monat==9 OR monat==11) && (tag>0 && tag<=30)) return true;
    return false;
    };

    wieso geht sowas nicht?
    bzw. wie muss mans machen?



  • Deine Logik stimmt nicht. Nach deinem Code ist das Datum gültig, wenn nur der Monat zwischen 1 und 12 liegt, denn dann gibst du bereits true zurück.

    Es ist aber genau andersrum. Wenn der Monat nicht zwischen 1 und 12 liegt, ist das Datum ungültig, egal was Tag und Jahr sind.



  • Es gibt keinen OR-Operator in C++. Entweder du schreibst || oder or, wobei letzteres eher ungebräuchlich ist, da es erst sehr spät zur Sprache hinzugefügt wurde, während || schon in den 70ern in C war.
    Ausserdem fehlt ein Zweig für den Februar.



  • ach ja stimmt bin ich blöde!
    das or hatte ich von php noch im kopf habs vertauscht obwohl bei php auch || geht!
    der feb. is noch draußen da ermittelt werden muss obs nen schaltjahr oda net is!


Anmelden zum Antworten