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!