Thomas Hanf: Programmierung eines einfachen Zählers!??

Liebes Forum!

Unser Web-Programmierer ist leider krank und ich habe folgendes Problem schnellstmöglich zu lösen, obwohl meine Programmierkenntnisse nicht ganz soooo überragend sind...

Ich muss einen Zähler programmieren, indem 2 Werte dargestellt werden:
in dem einen Feld wird eine aktuelle Grösse eines bestimmten Wertes angezeigt, welcher pro Sekunde um 14,50 kg ansteigt.
In einem 2. Feld wird ein Wert errechnet, der angibt um wieviel KG sich der oben genannte Wert vergrössert hat, seit man diese Seite besucht.

Startwert für den 01.01.2002 0:00:00 h sind 263.086.618 kg. Pro Sekunde erhöht sich dieser Wert um 14,50 kg, so dass am Ende des Jahres 2002 ca.720.482.000 kg erreicht sind (zur Kontrolle).

Ist eine einfache Berechnung, vermute ich, doch leider fehlen mir dazu die nötigen Kenntnisse. Ein Beispiel wie die Seite später aussehen soll, findet Ihr unter "http://www.lsd-gmbh.de/GAS/Emissionsrechner.htm". Dort wird allerdings momentan nur die aktuelle Bevölkerungszahl der Erde berechnet...

Über jede Hilfe wäre ich mehr als dankbar!

MfG
Thomas Hanf

  1. Hi,

    in dem einen Feld wird eine aktuelle Grösse eines bestimmten Wertes angezeigt, welcher pro Sekunde um 14,50 kg ansteigt.

    ermittle die Differenz der aktuellen Zeit mit der Startzeit, multipliziere das mit 14.5, addiere den Startwert, zeige das Ergebnis sinnvoll formatiert an. Setze einen Timeout (Zaunpfahl), der das gleiche eine Sekunde später wiederholt.

    In einem 2. Feld wird ein Wert errechnet, der angibt um wieviel KG sich der oben genannte Wert vergrössert hat, seit man diese Seite besucht.

    Speichere zu Beginn des Seitenaufbaus die Uhrzeit. Gehe wie oben vor, nur dass die Startzeit eben nicht der 1.1.2002, und der Startwert=0 ist.

    Ist eine einfache Berechnung, vermute ich, doch leider fehlen mir dazu die nötigen Kenntnisse.

    Sind übrigens vorwiegend Mathekenntnisse. Ein gutes Beispiel dafür, dass man den Mathe-Anteil eines Informatikstudiums nicht unterschätzen sollte :-)

    Cheatah

    P.S.: Du bist darauf angewiesen, dass die Rechnerzeit des Benutzers (halbwegs) korrekt ist. Um das auszugleichen, ist mehr als JavaScript nötig.

  2. Hallo Thomas,

    Liebes Forum!

    Unser Web-Programmierer ist leider krank und ich habe folgendes Problem schnellstmöglich zu lösen, obwohl meine Programmierkenntnisse nicht ganz soooo überragend sind...

    Ich weiss wie das ist wenn man krank ist, da hat man gar keinen Bock drauf zu programmieren ...

    Über jede Hilfe wäre ich mehr als dankbar!

    MfG
    Thomas Hanf

    ... darum, wer so nett ist, dem muß ich einfach helfen
    Gruß Lutz

    <form name="Masse">
    <input name="m1"><input name="m2">
    </form>
    <script language="JavaScript">
    var t0=new Date(2002,0,1,0,0,0);
    var t1 = new Date();
    var dt=t1.getTime()-t0.getTime();
    Masse.m1.value=263086618+Math.round(dt*14.5/1000);
    function Massieren()
    { var tt=new Date();
      dt=tt.getTime()-t0.getTime();
      Masse.m1.value=263086618+Math.round(dt*14.5/1000);
      dt=tt.getTime()-t1.getTime();
      Masse.m2.value=Math.round(dt*14.5/1000);
      setTimeout("Massieren()",100);
    }
    setTimeout("Massieren()",100);
    </script>

    1. Hallo Lutz!

      Vielen vielen Dank schon mal für die Mühe.

      Das Script sieht ja recht vielversprechend aus und ich hab vor Freude schon die ganze Nachbarschaft aus dem Bett geschrien, doch leider funktioniert es nicht...oder hab ich irgendwas falsch gemacht???
      Hab es ganz normal in meine HTML Seite eingesetzt, aber es tut sich nicht besonders viel...

      Thomas

      1. Hallo Lutz!

        Vielen vielen Dank schon mal für die Mühe.

        Das Script sieht ja recht vielversprechend aus und ich hab vor Freude schon die ganze Nachbarschaft aus dem Bett geschrien, doch leider funktioniert es nicht...oder hab ich irgendwas falsch gemacht???
        Hab es ganz normal in meine HTML Seite eingesetzt, aber es tut sich nicht besonders viel...

        Thomas

        Hallo Thomas,
        tschuldigung, hab das Ding nur mit IE 5.5 getestet,der sehr fehlertollerant ist. Normalerweise muß im Script
        document.Masse.m1.value und document.Masse.m1.value
        anstelle von
        Masse.m1.value und Masse.m1.value
        verwendet werden, dann läuft es auch auf anderen Browsern.
        Gruß Lutz

        1. Hallo Lutz!

          Muss Dich noch mal nerven. Ich glaub ich such mir einen anderen Job, bin langsam am verzweifeln :O)

          Ich hab's jetzt so angelegt wie Du sagtest, doch irgendwie läuft's noch immer nicht....

          <form name="Masse">
          <input name="m1"><input name="m2">
          </form>
          <script language="JavaScript">
          var t0=new Date(2002,0,1,0,0,0);
          var t1 = new Date();
          var dt=t1.getTime()-t0.getTime();
          document.Masse.m1.value=263086618+Math.round(dt*14.5/1000);
          function Massieren()
          { var tt=new Date();
            dt=tt.getTime()-t0.getTime();
            document.Masse.m1.value=263086618+Math.round(dt*14.5/1000);
            dt=tt.getTime()-t1.getTime();
            document.Masse.m2.value=Math.round(dt*14.5/1000);
            setTimeout("Massieren()",100);
          }
          setTimeout("Massieren()",100);
          </script>

          Danke Danke, nochmal!
          Tommy

          1. Hallo Lutz!

            Muss Dich noch mal nerven. Ich glaub ich such mir einen anderen Job, bin langsam am verzweifeln :O)

            Ich hab's jetzt so angelegt wie Du sagtest, doch irgendwie läuft's noch immer nicht....

            <form name="Masse">
            <input name="m1"><input name="m2">
            </form>
            <script language="JavaScript">
            var t0=new Date(2002,0,1,0,0,0);
            var t1 = new Date();
            var dt=t1.getTime()-t0.getTime();
            document.Masse.m1.value=263086618+Math.round(dt*14.5/1000);
            function Massieren()
            { var tt=new Date();
              dt=tt.getTime()-t0.getTime();
              document.Masse.m1.value=263086618+Math.round(dt*14.5/1000);
              dt=tt.getTime()-t1.getTime();
              document.Masse.m2.value=Math.round(dt*14.5/1000);
              setTimeout("Massieren()",100);
            }
            setTimeout("Massieren()",100);
            </script>

            Danke Danke, nochmal!
            Tommy

            Hallo Hallo nochmal!
            Der obige Code muß noch in das Grundgerüst einer HTML-Datei eingefügt werden (das ist der erste Grund, den ich mir vorstellen kann, warum es nicht geht):

            <html>
            <head>
            </head>
            <body>
              [hier den obigen Code einfügen]
            </body>
            </html>

            Das ganze als dateiname.html speichern und mit einem JavaScript-fähigen Web-Browser öffnen. Es muß in dem betreffenden Browser auch JavaScript enabled sein, sonst gehts nicht (das ist der zweite Grund). Z.B. beim IE die Einstellung unter Extras->Internetoptionen->Sicherheit->Internet->Stufe anpassen->Scripting auf Aktivieren stellen.
            Ich hoffe, das hilft weiter!
            Gruß Lutz.

            1. Hallo Lutz!

              Klar hatte ich das Script im HTML eingebunden gehabt. Der Zähler läuft im Netscape 6.1 bestens, allerdings nur da. Er läuft nicht im IE 5 und auch nicht im Netscape Communicator, stattdessen meldet er einen Scriptfehler in Zeile 18 ( dt=tt.getTime()-t0.getTime(); ).