1.4k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo,
ich benötige ein JavaScript, um die Jubiläen von Vereinsmitgliedern auf der Homepage automatisch auszugeben.
Bekannt sind zur Berechnung des Jubiläums der Monat und das Jahr des Vereinsbeitrittes der Mitglieder.
Es sind ca. 30 Mitglieder die sich laufend ändern und das Script muss dementsprechend anpassbar sein.

Die Ausgabe des Textes soll ungefähr so lauten:
"Die Vereinsmitglieder des GZV gratulieren
dem Zuchtfreund Max Mustermann zur 10-jährigen
der Zuchtfreundin Maxi Mustermann zur 25-jährigen
Mitgliedschaft".

Das Jubiläum soll alle 5 Jahre angezeigt werden, also Eintrittsjahr +5+5+5+5... usw.
Zu beachten ist, dass auch mehrere Mitglieder, siehe Ausgabetext, im Monat bzw. Jahr Jubiläum haben können und die Ausgabe zwischen männlichen und weiblichen Mitgliedern unterscheidet.

Ich glaube, die Aufgabe ist nicht ganz einfach und für einen Laien, wie mich, unlösbar.

Ich hoffe, ihr könnt mir trotzdem helfen.

Danke, schon mal!

5 Antworten

0 Punkte
Beantwortet von
Ich habe mal versucht ein Geburtstags-Script soweit umzuschreiben, dass nur noch die Anrede für männliches oder weibliches Mitglied und die Ermittlung des genauen Jubiläumsdatums einzuarbeiten ist.
Vielleicht ist es jetzt etwas einfacher für euch zu verstehen, was ich meine.

function jubilaeum() {

var Schriftfarbe = "#0034A0"; // Schriftfarbe hier ändern
Name = new Array;
JubilaeumsMonat = new Array;
JubilaeumsJahr = new Array;
var n = 2;
var titel_m = "dem Zuchtfreund";
var titel_w = "der Zuchtfreundin"

Name[n]="Max Mustermann"; JubilaeumsMonat[n]=9; JubilaeumsJahr[n]=1961; n++;
Name[n]="Maxi Mustermann"; JubilaeumsMonat[n]=10; JubilaeumsJahr[n]=1951; n++;
Name[n]="Paul Mustermann"; JubilaeumsMonat[n]=9; JubilaeumsJahr[n]=1981; n++;

//... hier weitere Mitgliedereinträge möglich.

Monate = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var t = 0, Jubilaeum = n-1;
var HeutigesDatum = new Date();
var Monat = HeutigesDatum.getMonth()+1;
var Jahr = HeutigesDatum.getFullYear();

document.writeln('<font size=2><big><b>Die Mitglieder des GZV gratulieren im ' + Monate[Monat-1]);
document.writeln('</b></big></font><br><br> <font color='+Schriftfarbe+'>');

for (i = 1; i <= Jubilaeum; i++) {
if (JubilaeumsMonat[i] == Monat) {
var Jahre = Jahr - JubilaeumsJahr[i];
document.writeln("<b>" + titel_m + " " + "<font size='+1'>" + Name[i] + "</font>" + " zum " + Jahre + "." + " Jubiläum" + "</b><br>");

t++;
}
}

if (t==0)
document.writeln('Keinen Eintrag für ' + Monate[Monat-1] + ' vorhanden!');
else
document.writeln('<br><b><font color=#000000>Herzlichen Glückwunsch und gut Zucht!</b>');
}
0 Punkte
Beantwortet von
Wegen der Ausgabe eines vereinfachten Textes ist die Unterscheidung zwischen männlich und weiblich Mitglied nicht mehr zwingend erforderlich. Es müssen nur noch die Jubiläümsjahre berechnet werden. Aber wie?
0 Punkte
Beantwortet von
var Jahre = Jahr - JubilaeumsJahr;
if (Jahre%5==0) {
-> Ausgabe Jubiläum
}

Dein Code sieht sehr chaotisch aus, aber wenn's für dich passt ...
0 Punkte
Beantwortet von
Danke, Jubiläumsanzeige funktioniert soweit, dafür werden die beiden letzten Zeilen (mit --> markiert) nicht richtig eingeblendet. Was vorher ging.

Deinen Code habe ich jetzt so eingefügt:
for (i = 1; i <= Jubilaeum; i++) {
if (JubilaeumsMonat[i] == Monat) {
var Jahre = Jahr - JubilaeumsJahr[i];
if (Jahre%5 == 0)
document.writeln("<b><font size='+1'>" + Name[i] + "</font>" + " zur " + Jahre + "-jährigen Mitgliedschaft" + "</b><br>");

t++;
}
}

if (t == 0)
--> document.writeln('Keinen Eintrag für ' + Monate[Monat-1] + ' vorhanden!');
else
--> document.writeln('<br><b><font color=#000000>Herzlichen Glückwunsch und gut Zucht!</b>');

"Herzlichen Glückwunsch und gut Zucht!" soll nur erscheinen, wenn ein Jubiläum eingetragen ist, ansonsten erscheint der ander Eintrag "'Keinen Eintrag für jeweiligen Monat vorhanden!".
0 Punkte
Beantwortet von
Es funktioniert! Hatte nur die Klammern { ... } nicht bzw. falsch gesetzt.
if (Jahre%5 == 0) {
document.writeln("<b><font size='+1'>" + Name[i] + "</font>" + " zur " + Jahre + "-jährigen Mitgliedschaft" + "</b><br>");

t++;
}
...