Mir wird der falsche Preis ausgegeben!
Gib an bei welcher Eingabe das passiert.
Falls das Zimmer im angegebenen Zeitraum frei ist, ...
Ich fasse das so auf, dass das Zimmer an jedem einzelnen Tag im angegebenen Zeitraum frei sein soll.
Wenn ich das Zimmer vom 1. bis zum 20. Juni haben will, dann werde ich mich nicht damit zufrieden geben, dass das Zimmer lediglich vom 1. bis zum 13. Juni und vom 15. bis zum 20. Juni verfügbar ist. Stattdessen werde ich mir für den gesamten Zeitraum eine andere Bleibe suchen.
kalender[i].Wochentag[0] == 'S' && kalender[i].Wochentag[1] == 'a' || kalender[i].Wochentag[1] == 'o'
Erkundige dich über die Vorrangregeln der Operatoren.
kalender[i].Datum >= ersterTag && kalender[i].Datum <= letzterTag
Das Format TTMMJJJJ ist nicht dazu geeignet, mittels numerischem Vergleich zu prüfen, ob ein gegebenens Datum in einem gegebenen Zeitraum liegt. Zum Beispiel ist
20012024 >= 1022024 && 20012024 <= 25022024
trotzdem liegt der 20. Januar 2024 nicht zwischen dem 1. Februar 2024 und dem 25. Februar 2024
cout << "Geben Sie den ersten Tag der Buchung (TTMMJJJJ) ein: ";
cin >> ersterTag;
Mache dir klar, wie jetzt der Inhalt der Variable ersterTag
interpretiert wird.
// Funktion, um gebuchte Tage auszugeben
printBookingDates(kalender, ersterTag, letzterTag);
Erinnere dich daran, wie der Inhalt der Variable ersterTag
interpretiert wird.
for (int i = ersterTag; i <= letzterTag; ++i)
{
if (kalender[i].gebucht) {
// ...
}
}
Mich wundert es ein wenig, dass du die allgemeine Schutzverletzung nicht erwähnt hast.