Hallo,
meiner Meinung nach muss man sich nur einer sprachlich eindeutigen Formulierung des Problemes befleißigen. Dann klappts auch mit der Logik.
if (arr_date[1]!=1 || arr_date[1]!=2 || arr_date[1]!=3 || arr_date[1]!=4 || arr_date[1]!=11 || arr_date[1]!=12) return cal_error ("Ungültiges Monat!");
heißt:
Wenn zutrifft, dass arr_date[1] entweder nicht gleich 1 oder nicht gleich 2 ... oder nicht gleich 12 ist, dann soll der Fehler zurückgegeben werden.
Wahrscheinlich soll es aber heißen:
Bei allen Werten in arr_date[1], außer 1, 2, 3, 4, 11 und 12, soll der Fehler zurückgegeben werden. Das lässt sich so schlecht in Programmcode darstellen, also muss man anders formulieren.
Wenn nicht zutrifft, dass arr_date[1] gleich 1 oder arr_date[1] gleich 2 ... arr_date[1] gleich 12 ist, dann soll der Fehler zurückgegeben werden.
if (!(arr_date[1]==1 || arr_date[1]==2 || arr_date[1]==3 || arr_date[1]==4 || arr_date[1]==11 || arr_date[1]==12)) return cal_error ("Ungültiges Monat!");
oder
Wenn zutrifft, dass arr_date[1] nicht gleich 1 ist und arr_date[1] nicht gleich 2 ist ... und arr_date[1] nicht gleich 12 ist, dann soll der Fehler zurückgegeben werden.
if (arr_date[1]!=1 && arr_date[1]!=2 && arr_date[1]!=3 && arr_date[1]!=4 && arr_date[1]!=11 && arr_date[1]!=12) return cal_error ("Ungültiges Monat!");
viele Grüße
Axel