Announcement

Collapse
No announcement yet.

Jahreszahlen rauf/runter rechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Jahreszahlen rauf/runter rechnen

    Hallo Com

    Ich hab ein Problem das wohl eher mathematischer als programmiertechnisch Natur ist.
    Ich möchte mit JS die Monate und Jahre unendlich hinauf oder hinunter rechnen.
    Meine Funktion die ich bis hierher erstellt habe, gibt mir aber im Moment nur (vom aktuellen Monat/Jahr ausgehend) max. die Monate 12/2012 oder 1/2010 raus.
    Ich übergebe im HTML eine Zählervariable um die Funktion anzusprechen.
    Was aber nicht das Problem ist.
    Wie gesagt, es geht mir nur darum den nächsten Schritt beim rauf oder runterzählen anzugehen und die richtigen Jahre zu finden (was bei meinen Abfragen nur bis 2010 bzw. 2012 funktioniert).

    Könnt ihr mir vieleicht sagen wo mein Denkfehler ist?

    Code:
    function kalender (monat) {
    
                            var month = monat;
                            var year;
    			var datum = new Date();
    			if(month == jetzt.getMonth()) {
    				// Aktuellen Monat/Jahr setzen
    				year = jetzt.getFullYear();
    				month = jetzt.getMonth();
    			} else if(month > jetzt.getMonth()) {
    				// höhere Monate und aktuelles Jahr setzen
    				year = jetzt.getFullYear();	
    				if(month >= 12) {
    					// Monat auf 1 und Jahr um einen hoch
    					var m = 1;	
    					year = year + 1;
    				} 
    				if(month <= 0) { 
    					// Monat auf 1 und Jahr um einen runter
    					year = year - 1;
    					var m = 12;		
    				} 	
    				month = month ? month : m;
    			}
    			datum.setMonth(month);
    			datum.setYear(year);
    }
    Ich wäre dankbar für jeden konstruktiven Denkanstoß.

  • #2
    if(month == jetzt.getMonth()

    Da du beim zählen in jedem beliebigen Jahr diese Bedingung erfüllt,
    wird dann immer
    year = jetzt.getFullYear();
    gesetzt
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      if(month == jetzt.getMonth()

      Da du beim zählen in jedem beliebigen Jahr diese Bedingung erfüllt,
      wird dann immer
      year = jetzt.getFullYear();
      gesetzt
      Die Überlegung hatte ich auch schon und wollte mit '&& year == jetzt.getFullYear()' nur den aktuellen Monat des aktuellen Jahres abfragen, ändert aber leider am Endergebnis nix.

      Comment


      • #4
        Wenn du das Datum rauf- und runterzählen willst, warum überhaupt irgendein Vergleich und warum mit dem aktuellem Jahr.

        Es würde reichen, jeweils vom Monat zu subtrahieren/addieren und beim Jahresanfang das Jahr zu erhöhen/verringern
        Christian

        Comment


        • #5
          Originally posted by Christian Marquardt View Post
          Wenn du das Datum rauf- und runterzählen willst, warum überhaupt irgendein Vergleich und warum mit dem aktuellem Jahr.

          Es würde reichen, jeweils vom Monat zu subtrahieren/addieren und beim Jahresanfang das Jahr zu erhöhen/verringern
          Der Vergleich deshalb, weil als erstes der aktuelle Monat des aktuellen Jahres angezeigt werden soll (08.2011).
          Dann nach rauf oder runter zählen die folge bzw. zurückliegenden Monat mit den dazugehörigen Jahren.

          Comment


          • #6
            Dann die erstmalige Anzeige von der weiteren Berechnung trennen
            Christian

            Comment


            • #7
              Hallo,
              Originally posted by Christian Marquardt View Post
              ...Es würde reichen, jeweils vom Monat zu subtrahieren/addieren und beim Jahresanfang das Jahr zu erhöhen/verringern
              Nichtmal das bräuchte man. Die Datumsfunktionen von JS machen dies automatisch, wenn der Monat ausserhalb von 1-12 (bzw. 0-11) liegt.

              [highlight=javascript]
              var datum = new Date();
              alert (datum.toLocaleString());
              datum.setMonth(12);
              alert (datum.toLocaleString());
              datum.setMonth(-1);
              alert (datum.toLocaleString());
              [/highlight]

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment

              Working...
              X