Ergebnis 1 bis 6 von 6
  1. #1
    meph_isto ist offline Grünschnabel
    registriert
    15-02-2005
    Beiträge
    2

    Question differenz zweier datum-angaben

    hallo,

    ich arbeite mich gerade in infopath ein. das passt zwar eigentlich nicht zu diesem board, aber dort gibt es die möglichkeit js einzubauen. ich erarbeite momentan ein erfassungsformular für urlaubsanträge. ganz schnell landet man da an dem punkt wo man die differenz der tage errechnen möchte die zwischen urlaubs-anfang und urlaubs-ende liegen.

    ich habe also zwei werte wo ich jetzt den einen vom anderen abziehen möchte um die tage zu ermitteln. dabei ist natürlich wichtig das die monate mit ihren verschiedenen tagen und auch das schaltjahr berücksichtigt wird. ich meine einen solchen code bereits früher irgendwo gesehen zu haben, leider war es mir nicht möglich diesen im web zu finden.

    ich würde mich freuen wenn mir irgendjemand helfen könnte. ich brauche das dringend.....


    mfg
    mephisto

  2. #2
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913

    AW: differenz zweier datum-angaben

    Hallo,

    schau doch mal bei der Calendar Class vorbei:
    http://www.calendar-class.more-style...ionscript.html

    Die Methode getDateDifferenz() (ganz unten), tut genau das was Du möchtest.


    Grüße Robert

  3. #3
    zehdeh ist offline Routinier
    registriert
    30-09-2002
    Ort
    Stühlingen
    Beiträge
    302

    AW: differenz zweier datum-angaben

    Hallo,

    eine schöne Sammlung, aber leider ist genau die Methode ein bißchen kaputt.
    "m" kommt bei Minuten und bei Monaten vor und bei der Berechnung der Jahre sollte es doch am Schluss "/12" heißen und nicht "/365".
    Gruß zehdeh.

  4. #4
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913

    AW: differenz zweier datum-angaben

    Na kapput is se ja nun nicht gleich.
    Habs abgeändert, da hat wohl wer geschlafen.

  5. #5
    meph_isto ist offline Grünschnabel
    registriert
    15-02-2005
    Beiträge
    2

    AW: differenz zweier datum-angaben

    hallo nochmal,

    also erstmal danke für die schnellen antworten. mal abgesehen davon das ich eigentlich keine ahnung von javascript habe und mit sicherheit erstmal lange rumprobieren muß um das zum laufen zu bringen, frage ich mich, ob es wirklich das ist was ich brauche?!?!?

    wenn ich das richtig sehe wird hier mit einer festen monatsgröße gearbeitet und somit angenommen das jeder monat 30 tage hat oder?
    ich denk das das bei einer urlaubsberechnung wo es wirklich auf die ganaue anzahl der tage ankommt nicht so günstig ist......
    desweiteren sehe ich nicht wo das mit den schaltjahren irgendwie berücksichtigung findet, habe ich recht?
    das würde in meinem fall doch bedeuten das es in den meisten fällen zwar gutgeht, aber wenn nun jemand doch in einem schaltjahr ende februar bis märz urlaub machen will, dies nicht funzt......
    nach längerem überlegen an diesem problem ist mir dann noch der gedanke gekommen das es ohnehin wohl nicht realisierbar ist. denn wie sollte man dann noch unterscheiden zwischen arbeitstagen und wochenenden an denen keine tage berechnet werden dürfen....

    also ich glaube ich überlasse das rechnen dann doch lieber den antragstellern......

    mfg
    mephisto

  6. #6
    midway ist offline Grünschnabel
    registriert
    09-03-2005
    Beiträge
    1

    Lightbulb AW: differenz zweier datum-angaben

    Hallo,

    interessiert hat mich das Thema. Und heraus gekommen ist das Folgende. Ich denke, es ist das, was du suchst.
    Also, beim Urlaub zählen die Wochenenden und Feiertage nicht. Diese sind natürlich je nach Bundesland usw. anzupassen.
    Vergiß nicht, die Angabe der Monate weicht von den übrigen Zahlwerten ab: Januar=0, Februar=1, ... usw. Natürlich werden auch die Schaltjahre berücksichtigt.
    Noch Fragen?


    Code:
    var gxFeiertag = new Array (
      new Date (2005,02,25),      //Karfreitag
      new Date (2005,02,27),      //Ostern
      new Date (2005,02,28),      //Ostern
      new Date (2005,04,05),      //Christi Himmelfahrt
      new Date (2005,04,15),      //Pfingsten
      new Date (2005,04,16),      //Pfingsten
      new Date (2005,04,26),      //Fronleichnam
      new Date (2005,07,15),      //Mariä Himmelfahrt (SN,BY teilw.)
      new Date (2005,09,03),      //Tag der deutschen Einheit
      new Date (2005,09,31),      //Reformationstag
      new Date (2005,10,01),      //Allerheiligen
      new Date (2005,10,16),      //Buß- und Bettag
      new Date (2005,11,25),      //Weihnachten
      new Date (2005,11,26)       //Weihnachten
      );
    
    
    //---- Anzahl der Arbeitstage zwischen zwei Terminen ermitteln ----
    //created by Hanro S.
    //xDat1, xDat2
    function getAnzArbTage (xDat1, xDat2) {
      var i, iDays, iDays1, iDays2, iDaysH, iWDay1, iWDay2;
    
      iDays1 = Math.floor (xDat1.getTime() / 86400000);       //Tage seit dem 1.1.1970 (/ (1000 * 3600 * 24))
      iDays2 = Math.floor (xDat2.getTime() / 86400000);
      iWDay1 = xDat1.getDay();       //Wochentag (0=Sonntag)
      iWDay2 = xDat2.getDay();       //Wochentag (0=Sonntag)
    
      if (iDays2 < iDays1) {               //ggf. alles tauschen, kann bei entspr. Vorbereitung des Fkt.-Aufrufes entfallen
        i = iDays1; iDays1 = iDays2; iDays2 = i;
        i = iWDay1; iWDay1 = iWDay2; iWDay2 = i;
      }
    
      iDays = iDays2 - iDays1 + 1
            - (iWDay1 == 0 ? 1 : 0)   //1 x Samstag extra berücksichtigen
            - (iWDay2 == 6 ? 1 : 0)   //1 x Sonntag extra berücksichtigen
            - 2 * Math.floor ((iDays2 - iDays1 + iWDay1 - iWDay2) / 7);   //Differenz zwischen Sonntag-Sonntag
      for (i = 0; i < gxFeiertag.length; i++) {
        iDaysH = Math.floor (gxFeiertag[i].getTime() / 86400000);
        if (iDays1 <= iDaysH && iDaysH <= iDays2) {
          switch (gxFeiertag[i].getDay()) {
            case 0:
            case 6:
              break;
            default:
              iDays--;
          }
        }
      }
      return iDays;
    }
    
    //---- Initialisierung ----
    function Init () {
      var xDat1 = new Date (2005, 02, 18);
      var xDat2 = new Date (2005, 03, 01);
    
      document.getElementById("ID1").firstChild.nodeValue = xDat1.getDate() + "." + (xDat1.getMonth()+1) + "." + xDat1.getFullYear();
      document.getElementById("ID2").firstChild.nodeValue = xDat2.getDate() + "." + (xDat2.getMonth()+1) + "." + xDat2.getFullYear();
      document.getElementById("ID3").firstChild.nodeValue = getAnzArbTage (xDat1, xDat2) + " Arbeitstage";
    }
    und zum Test das ganze hierin einbauen:
    HTML-Code:
    <HTML>
    <HEAD><TITLE>Test</TITLE>
    </HEAD>
    
    <SCRIPT language="JavaScript" type="text/javascript">
    <!--
    .....
    //-->
    </SCRIPT>
    
    <BODY onLoad="Init()">
    <H4>Anzahl Arbeitstage zwischen zwei Daten ermitteln</H4>
    <DIV id="ID1">w</DIV>
    <DIV id="ID2">w</DIV>
    <DIV id="ID3">w</DIV>
    
    </BODY>
    </HTML>
    Geändert von midway (10-03-2005 um 20:36 Uhr)

Ähnliche Themen

  1. Datum prüfen
    Von XNeoX im Forum JavaScript
    Antworten: 12
    Letzter Beitrag: 27-05-2009, 12:56
  2. Datum + 1Tag
    Von jens_wl im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 09-10-2004, 02:17
  3. [PHP] - Datum in MySQL Datenbank Speichern und zur Terminausgabe nutzen
    Von smash im Forum Serverseitige Programmierung
    Antworten: 4
    Letzter Beitrag: 13-03-2004, 20:01
  4. Datensatz auslesen vor und nach dem aktuellen Datum
    Von Denow im Forum Serverseitige Programmierung
    Antworten: 10
    Letzter Beitrag: 19-08-2003, 21:45
  5. Datum der letzten Aktualisierung einer anderen Seite
    Von Earthman im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 03-10-2000, 15:38

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •