• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] JS Daten vergleichen und Ausgabe erzeugen

TommyTorte

New member
Hallochen alle Zusammen,

ich hab gerade erst mit JS angefangen und habe folgendes (wahrscheinlich sehr simpeles) Problem.
Im Zuge meiner Informatikvorlesung, soll ich ein Script schreiben was folgendes tut:

Nach Eingabe 2 Daten (Geburtstag und Partydatum) soll ausgegeben werden wann der letzte Geburtstag vor der Party ist,
ausserdem soll geprüft werden:
1. ob das Partydatum schon vergangen ist
2. ob Party und Geburtstag 10 oder mehr Tage auseinander liegen
3. ob das Partydatum auf Heiligabend, den 1sten oder 2ten Weihnachtsfeiertag fällt

Ich habe das alles hinbekommen, nur bei Punkt 3 habe ich keine Idee wie ich das realisieren soll.


Für eure Hilfe bin ich sehr dankbar


Hier ist was ich bisher geschrieben habe (quellcode):

Code:
				function test() {
					//Datum einlesen
					var numday = document.formchkdate.nday.value;
					var nummonth = document.formchkdate.nmonth.value;
					var numyear = document.formchkdate.nyear.value;
					var numdayparty = document.formchkdate.ndayparty.value;
					var nummonthparty = document.formchkdate.nmonthparty.value;
					var numyearparty = document.formchkdate.nyearparty.value;
					//Datum in einen String umwandeln
					var birthchk=new Date(0);
					birthchk.setFullYear(numyear,nummonth-1,numday);
					var partychk=new Date(0);
					partychk.setFullYear(numyearparty,nummonthparty-1,numdayparty);
					//Datum ausgeben
					document.formchkdate.prbirth.value=birthchk.toLocaleDateString();
					document.formchkdate.prparty.value=partychk.toLocaleDateString();
					//Letzen Geburtstag angeben
					var last = new Date(0);
					last.setFullYear(numyearparty,nummonth-1,numday);
					//Letzen Geburtstag ausgeben
					document.formchkdate.lastbirth.value=last.toLocaleDateString();
					//Bedingungen für Termin
					//Vergangenheit und 10 Tage Frist
					var party = partychk;
					var timeDiff = Math.abs(party.getTime() - last.getTime());
					var diffDays = Math.ceil(timeDiff / 86400000);
					var today = new Date();
					today.setHours(0,0,0,0)
						if (party < today){
						document.formchkdate.prdate.value="im neuen Jahr";
						}
						else if (diffDays <= 10) {
						document.formchkdate.prdate.value="Der Termin passt";
						}
						else {
						document.formchkdate.prdate.value="echt solange danach?";
						}
				}
 
Zuletzt bearbeitet von einem Moderator:
Das geht mit einer ganz simplen if-Abfrage:
Code:
var christmasDays = ["24.12.", "25.12.", "26.12"];
var partyDateFormatted = party.getDate() + "." + (party.getMonth() + 1) + "."; //in String umwandeln, damit die switch-Abfragen leichter nachzuvollziehen sind
if(christmasDays.indexOf(partyDateFormatted) !== -1){
  alert("Das Partydatum fällt auf Heilig Abend oder den 1. oder 2. Weihnachtsfeiertag.");
}

Bitte wirf bevor du einen Thread erstellst einen Blick in die entsprechenden Regeln und setze zukünftig Code-Tags.
 
Zuletzt bearbeitet:
tausend Dank

aber eine Frage hab ich noch.

Warum krieg ich eine "positive" Ausgabe für den 25.12 -27-12 und nicht wie erwartet für den 24.12-26.12?
 
Zuletzt bearbeitet:
Bitte - gerne.


Warum krieg ich eine "positive" Ausgabe für den 25.12 -27-12 und nicht wie erwartet für den 24.12-26.12?
Da war noch ein gravierender Fehler drin, und zwar hatte ich den Vergleich in der if-Abfrage schlicht und einfach vergessen. Du musst natürlich prüfen, ob nicht -1 zurückgegeben wird (oben ausgebessert).
if(christmasDays.indexOf(partyDateFormatted) !== -1){
 
Zurück
Oben