Täglicher Bilderwechsel, aber Wiederholung nach dem 3. Bild/Tag
Michael N.
- java
Hallo Zusammen,
ich habe, wie sollte es auch anders sein, ein Problem mit einem Bilderwechsel:
Täglich um 00.00 Uhr soll ein neues Bild geladen werden (Bild 1, Bild 2, Bild 3). Nachdem das drei Tage/Bilder gelaufen ist, also jedes Bild einmal sichtbar war, soll die Nummer wieder von Vorne losgehen. Hat da irgendjemand eine Idee für mich. DANKE!
Ich habe mir schon die Finger im Forum "wundgesucht" aber die "täglichen Bilderwechsel" sind immer auf 7 Bilder und Tage ausgelegt.
Michael,
Was hat Problem mit Java zu tun?
Ich habe mir schon die Finger im Forum "wundgesucht" aber die "täglichen Bilderwechsel" sind immer auf 7 Bilder und Tage ausgelegt.
Du willst eine fertige Lösung, weil du es selbst nicht zustandebringst, "7" durch "3" zu ersetzen?
Gunnar
Hallo Michael,
Täglich um 00.00 Uhr soll ein neues Bild geladen werden (Bild 1, Bild 2, Bild 3). Nachdem das drei Tage/Bilder gelaufen ist, also jedes Bild einmal sichtbar war, soll die Nummer wieder von Vorne losgehen. Hat da irgendjemand eine Idee für mich. DANKE!
Ich nenne dir jetzt mal die Bauteile, mit denen du dir etwas mit Javascript basteln kannst:
new Date()
getTime()
parseInt()
(in diesem Zusammenhang sollte man wissen, dass ein Tag aus
1000 * 60 * 60 * 24 Millisekunden besteht.)
Dann brauchst du noch den
% (Modulo-Operator, du willst den Divisionsrest durch drei ermitteln)
sowie ein Array
var bilder = new Array("er.jpg","sie.jpg","es.jpg");
Gruß Gernot
Hallo nochmal Michael,
Täglich um 00.00 Uhr soll ein neues Bild geladen werden (Bild 1, Bild 2, Bild 3). Nachdem das drei Tage/Bilder gelaufen ist, also jedes Bild einmal sichtbar war, soll die Nummer wieder von Vorne losgehen. Hat da irgendjemand eine Idee für mich. DANKE!
Ich nenne dir jetzt mal die Bauteile, mit denen du dir etwas mit Javascript basteln kannst:
Ich vergaß, die Methode document.wirteln() brauchst du wahrscheinlich auch noch für deine Zwecke (Das geht aber auch anders, ist für dich aber wohl das Einfachste).
new Date()
getTime()
parseInt()
(in diesem Zusammenhang sollte man wissen, dass ein Tag aus
1000 * 60 * 60 * 24 Millisekunden besteht.)
Dann brauchst du noch den
% (Modulo-Operator, du willst den Divisionsrest durch drei ermitteln)
Was ist 3 Modulo 3 ?
Wenn du mir diese Frage beantworten kannst, helfe ich dir gerne auch noch weiter. Meine nächste Hilfe wäre dann, dich zu fragen, wie man aus den seit dem Jahreswechsel 1969/1970 verstrichenen Millisekunden ermitteln kann, wie viele Tage das sind.
Und wenn du dann die Lösung für dein Problem immer noch nicht hast, machen wir das Spielechen weiter, bis du sie hast.
Du hast hier eine wunderschöne Anfängerübung, an der du sehr viele Dinge gleichzeitig lernen kannst. Deshalb will dir hier im Forum auch niemand die Lösung vorsagen. Sonst lernst du nichts.
Nimm dir die Zeit!
Gruß Gernot
Hallo Gernot,
bevor ich die Frage beantworte vorab noch kurz dies: DANKE!!!! Ich bin leider (noch) der totale Anfänger (vielleicht war die Aufgabe die ich mir gestellt habe zu groß?) und vielleicht war auch die Frage "zu platt" gestellt, aber das es doch tatsächlich auch User gibt die einen dafür abstrafen ... damit habe ich nicht gerechnet (s. weitere Antwort auf meine Anfrage) . Nochmals vielen Dank, dass du mir helfen willst.
So nun zu den Tagen und 3 Modulo 3:
3 Modulo 3 ist im Ergebnis 1 (da 3/3=1) und es sind 12798 Tage vom 01.01.1970 00:00 Uhr an bis heute (15.01.2005). Allerdings verstehe ich nicht, wofür ich da Modulo brauche. Da komme ich doch auch mit Round hin ((jetzt - VARIABLE) / 1000 / 60 / 60 / 24; und dann runden) oder liegt da mein Denkfehler?
Gruß
Michael
So nun zu den Tagen und 3 Modulo 3:
Fehler!!!
3 Modulo 3 ist im Ergebnis 1 (da 3/3=1)
Richtig: 3 Modulo 3 ist im Ergebnis 0!!! Da kein Rest vorhanden ist. Aber irgendwie bringt mich diese Erkenntnis immer noch nicht weiter!
Gruß
Michael
Hallo Michael,
bevor ich die Frage beantworte vorab noch kurz dies: DANKE!!!! Ich bin leider (noch) der totale Anfänger (vielleicht war die Aufgabe die ich mir gestellt habe zu groß?) und vielleicht war auch die Frage "zu platt" gestellt, aber das es doch tatsächlich auch User gibt die einen dafür abstrafen ... damit habe ich nicht gerechnet (s. weitere Antwort auf meine Anfrage) . Nochmals vielen Dank, dass du mir helfen willst.
Abstrafen will dich hier niemand, nur dazu bringen, es mit selber denken zu versuchen. Manche Alteingesessenen reagieren halt sehr allergisch, wenn man das _self_ hier zu früh aufgibt.
So nun zu den Tagen und 3 Modulo 3:
3 Modulo 3 ist im Ergebnis 1 (da 3/3=1)
Leider falsch Modulo ermittelt den Divisionsrest. Wenn du vier Äpfel hast und willst sie unter drei Leuten gerecht teilen, hast aber kein Messer zur Hand und willst auch keinen angebissenen Apfel überreichen oder überreicht bekommen dann bleibt ein Apfel übrig. Hast du hingegen genau drei oder sechs Äpfel so hast du kein roblem und es bleibt kein Apfel übrig.
und es sind 12798 Tage vom 01.01.1970 00:00 Uhr an bis heute (15.01.2005). Allerdings verstehe ich nicht, wofür ich da Modulo brauche. Da komme ich doch auch mit Round hin ((jetzt - VARIABLE) / 1000 / 60 / 60 / 24; und dann runden) oder liegt da mein Denkfehler?
Dafür brauchst du noch kein Modulo und ja Runden ist der nächste Schritt. Du willst aber grundsätzlich abrunden: Der neue Tag beginnt erst, wenn weitere 1000 * 60 * 60 * 24 Millisekunden komplett verstrichen sind. Deshalb schneide die durch die Division erhaltenen Nachkommastellen ab und führe mit dem Ergebnis dann die Modulo-Operation aus, damit du weißt ob die seit dem Jahreswechsel 1996/70 verstrichenen Tage glatt durch drei teilbar sind (0 Tage übrig) oder ein Rest von 1 oder 2 Tagen bleibt.
Mit der Restzahl kannst du dann dein Bilderarray ansprechen und per document.writeln in dein Dokument schreiben.
Gruß Gernot
Hallo nochmal,
... damit du weißt ob die seit dem Jahreswechsel 1996/70 verstrichenen Tage glatt ...
Dass ich ausgerechnet die 69 verdrehe, sollte mir nicht passieren. ;)
Gruß Gernot
Hallo Gernot,
Dass ich ausgerechnet die 69 verdrehe, sollte mir nicht passieren. ;)
Tippfehler passieren. Im Übrigen bin ich doch noch selber auf die Lösung "0" gekommen (vergl. mein Post vom 15.01.2005, 09:24 Uhr.
Über den Rest (deine Antwort) und das Script muss ich wohl noch länger nachdenken.
Schönes Wochenende.
Gruß
Michael
Hallo Michael,
Über den Rest (deine Antwort) und das Script muss ich wohl noch länger nachdenken.
Schönes Wochenende.
Das wünsche ich dir auch.
Das klingt, als ob du dich frühestens am Montag wiedermelden wolltest, wenn du bis dahin die Lösung nicht gefunden hast. Solange wird es aber nicht dauern. Du bist ganz nah dran. Wenn du alle Operatoren, Methoden und sonstigen Bauteile richtig geklammert berücksichtigst, die ich auch schon in meiner ersten Antwort genannt habe, reichen weniger als zehn Zeilen Code.
Gruß Gernot