Frage zu einem java script

  • Irgendwie funktiniert das Ganze nicht so richtig.
    Es handelt sich um eine Datumsanzeige für meinen chat (Rollenspielchat)(Datum der Spielwelt)
    soll wie folgt aussehen: Tagesname, Datum, Jahr (jahreszahl einzelnde Zeitrechnungen)

    Nun stimmt das Ganze aber nicht, denn der 1. Juli sollte der 1. Praios sein.
    Der Origninalsript ist aber eingestellt mit 1. Jänner = 1. Firun. Da wir im Chat zeitversetzt spielen muß ich irgendwie das ändern. Bis lang hats auch gepasst, aber jetzt habe ich den Hund drinnen, dass es nicht mehr übereinstimmt.

    Sollte sein: 12 Monate á 30 Tage + 5 Extra Tage (namenlose Tage.

    Zum Teil ist es so, wenn ich Namen, Zahlen, austausch, und sonst nichts verändere, (das Wort Praios gegen firun austuasch oder die Zahl 31 in 30 umändere, dass in anderen Zeilen plötzlich Fehlermeldungen angezeigt werden, wo ich gar nix getan hab :(


    Hier ist einmal der Script, vielleicht kann mir einer von euch Profis ja sagen wo ich was ändern muß, ohne dass in einer anderen Zeile ein Fehler angezeigt wird.

    function chatdatum()
    {
    var deretag = new Array ("Rondratag", "Feuertag", "Wassertag", "Windstag", "Erdstag", "Markttag", "Praiostag";
    var deremonat = new Array ("Firun", "Tsa", "Phex", "Peraine", "Ingerimm", "Rahja", "Namenloser Tag", "Praios", "Rondra", "Efferd", "Travia", "Boron", "Hesinde";
    var irdumrechmonat = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var irdheute = new Date();
    var irdjahr = irdheute.getFullYear();
    var irdmonat = irdheute.getMonth();
    var irdtag = irdheute.getDate();
    var irdtagname = irdheute.getDay();
    var irdheute = null;

    if (irdjahr < 100)
    irdjahr += 1900;
    var zeitrechnunghal = irdjahr - 1971;
    var zeitrechnungbosperan = irdjahr - 978;
    var zeitrechnunghoras = irdjahr + 516;
    var tageseitjahranfang = irdtag;
    for (i=0; i < irdmonat; i++)

    tageseitjahranfang += irdumrechmonat;

    var berechderemonat = Math.floor (tageseitjahranfang / 30);
    var berechderetag = tageseitjahranfang % 30;
    if (berechderetag == 0) { berechderetag = 30; berechderemonat--; }

    var Ausgabe = deretag [irdtagname] + ", ";
    Ausgabe += berechderetag + " " + deremonat[berechderemonat] + " ";

    Ausgabe += Math.abs(zeitrechnungbosperan) + " ";
    Ausgabe += "BF" + "<br />" + " (" ;

    Ausgabe += Math.abs(zeitrechnunghal) + " ";
    Ausgabe += "Hal" + ", " ;

    Ausgabe += Math.abs(zeitrechnunghoras) + " " ;
    Ausgabe += "Horas" + "" ;
    return Ausgabe;
    }

    function say(that){document.write(that)}
    function dsadatum()
    {
    var deretag = new Array ("Rondratag", "Feuertag", "Wassertag", "Windstag", "Erdtag", "Markttag", "Praiostag";
    var deremonat = new Array ("Praios", "Rondra", "Efferd", "Travia", "Boron", "Hesinde", "Firun", "Tsa", "Phex", "Peraine", "Ingerimm", "Rahja", "Tag des Namenlosen";
    var irdumrechmonat = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var irdheute = new Date();
    var irdjahr = irdheute.getFullYear();
    var irdmonat = irdheute.getMonth();
    var irdtag = irdheute.getDate();
    var irdtagname = irdheute.getDay();
    var irdheute = null;

    if (irdjahr < 100)
    irdjahr += 1900;
    var zeitrechnunghal = irdjahr - 1970;
    var zeitrechnungbosperan = irdjahr - 977;
    var zeitrechnunghoras = irdjahr + 515;
    var tageseitjahranfang = irdtag;
    for (i=0; i < irdmonat; i++)
    tageseitjahranfang += irdumrechmonat;

    var berechderemonat = Math.floor (tageseitjahranfang / 30);
    var berechderetag = tageseitjahranfang % 30;
    if (berechderetag == 0) { berechderetag = 30; berechderemonat--; }

    var Ausgabe = deremonat[berechderemonat];

    return (Ausgabe);
    }

    function say(that){document.write(that)}


    </script>
    <p></p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p align="center">&nbsp;
    Das aktuelle Datum im Chat ist: <br>
    <script>say(chatdatum())</script>
    </p></div>
    <br>

    <br>
    So haben wir im Chat dieselbe Jahreszeit haben wie auf der Erde, liegen allerdings dem offiziellen DSA-Datum um ein halbes Jahr zurück (zur Zeit <script>say(dsadatum())</script> <br><br>
    </td>

    In dem Script von hier soll von [ulr=http://free.pages.at/aventurien-dsa/datum-falsch.html] hier [/url]
    die zeilen eingefügt werden, die Wochentag + Tagesdatum anzeigen.

    Wär toll wenn ich es hinbekommen würde, dass es ab morgen anzeigt: 1. Praios 26 Hal 1029 BF (heutiges Chat datum: 5. Tag des Namenlosen 1028 BF)
    danke für die Hilfe im vorhinein.
    lg

    alexa
    ps.
    In dem Script von hier http://free.pages.at/aventurien-dsa/chatdatum.htmlsoll von [ulr=http://free.pages.at/aventurien-dsa/datum-falsch.html] hier [/url]
    die zeilen eingefügt werden, die Wochentag + Tagesdatum anzeigen.

    Wär toll wenn ich es hinbekommen würde, dass es ab morgen anzeigt: 1. Praios 26 Hal 1029 BF (heutiges Chat datum: 5. Tag des Namenlosen 1028 BF)
    danke für die Hilfe im vorhinein.
    lg

    alexa
    ps.
    wünschenswert wäre es, die zeilen, die das datum anzeigen, in den script (siehe http://free.pages.at/aventurien-dsa/chatdatum.html) einzufügen, dass bei diesem Datum, Wochentag + Tagesdatum angezeigt werden. (das einfügen der entsprechenden Zeilen verursacht Fehlermeldungen und ich weiß ned warum)

    sorry wennich etwas verwirrt kling hier, aber ich blick leider ned ganz durch :(
    und morgen sollte es stimmen (spätestens am Montag (dann halt 3. Praios)

    lg

    von einer verwirrten rpg-süchtigen chatbesitzerin

  • Also der logik zu folgen ist mir jetzt zu mühsam, aber...

    Bessere mal folgende Syntaxfehler aus:

    Code
    var deretag = new Array ("Rondratag", "Feuertag", "Wassertag", "Windstag", "Erdtag", "Markttag", "Praiostag";  
     var deremonat = new Array ("Praios", "Rondra", "Efferd", "Travia", "Boron", "Hesinde", "Firun", "Tsa", "Phex", "Peraine", "Ingerimm", "Rahja", "Tag des Namenlosen";

    Die Arrays sind nicht abgeschlossen, vor dem ';' fehlt die schliessende Klammer ')'.

    Code
    for (i=0; i < irdmonat; i++)

    Alle Variablen müssen in JavaScript mit var deklariert werden. Auch 'i' ist hier eine Variable, also gehört hier auch 'var i' hin. Dies kann zu unerwartetem Verhalten eines Scripts führen.

    Ausserdem hast du 2 mal die function say() implementiert, einmal reicht vollkommen!

    Ich habe deine Code nur überflogen und weiss nicht, ob das alle Syntaxfehler waren. Ich würde dir empfehlen, die JavaScript-Console in Firefox oder einen ähnlichen JavaScript-Debugger zu verwenden. Der hätte dich auf die gleichen Fehler aufmerksam gemacht. Es würde mich wundern, wenn dein Script überhaupt läuft, da die meisten Fehler schwerwiegender Natur sind (der Interpreter weigert sich, deinen Code auszuführen).

  • ja ich weiß meine Logik ist leider etwas wirr.. (kommt davon weil ich mich halt ned wirklich auskenn und daher verwirrt bin und halt ned find wo der hund drin steckt)
    ich beser mal das aus, hm script debugger? wär wirklich was nützliches..
    firefox verwend ich
    keine Ahnung. Hm der script ist auf der seite hier eingebaut und das passt leider eben nicht ganz.

    muß mal zugeben ich hab keine ahnung von nix, will mich großartig mit Dingen rumspielen wo ich mich halt (leider) ned wirklich auskenn (dann kommts halt dann auch dass nix funzt)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!