Javascript ist Toll!

15. October 2006 - 23:41

Wieviele Tage sind vergangen?

Die Frage war, wieviele Tage sind seit einem Datum vergangen und kann das Date Objekt auch mit einem Datum vor dem 1.1.1970 umgehen?

Rechnet die Funktion richtig?

Die folgende Funktion berechnet die Differenz in Tagen aus zwei Date Objekten. Das heisst, es wird ein internes Objekt verwendet und die Berechnung beruht auf den Interna von Javascript. Es sollten also alle Schaltjahre berücksichtigt werden

function deltaDays(date1, date2) {
    if(!date1 || !date2) return null;
    var check1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
    var check2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
    return Math.round(Math.abs(check1 - check2) / (1000 * 60 * 60 * 24 ));
}

Beispiel

Nachtrag (19.4.2010)

Ich habe das Skript leicht geändert, der in den Kommentaren bemerkte Unterschied hing von der Uhrzeit ab, die in der ersten Version des Skriptes in das Ergebnis einfloss. Die aktuell hier dargestellte Version zeigt bei der Berechnung das gleiche Ergebnis an wie z.b. Excel oder OpenCalc. Dürfte also richtig sein.

ähnliche Artikel

  • 18. November 2011 -- LED Editor (1)

    LED Scroller Chareditor Dieses Skript dient zum...

  • 13. May 2009 -- String Erweiterungen (5)

    Eine der Eigenschaften von Javascript, die sie von...

  • 29. April 2009 -- Online Molmassen Rechner (29)

    Ein kleines Javascript aus der Welt der Chemie. Der...

Comments (21)
14577 mal gelesen.

21 Kommentare

Leave a comment »

Seiten:

1. Comment von: Betatester
8. June 2009: 20:40

Was ist mit Schaltjahren?

2. Comment von: Struppi
9. June 2009: 14:16

Was soll mit denen sein?

3. Comment von: Miss Princesz
12. June 2009: 12:13

ist das Schaltjahr auch mit eingerechnet?

4. Comment von: Struppi
12. June 2009: 15:46

Ja, ansonsten wäre das Date() Objekt nutzlos.

5. Comment von: philipp
8. October 2009: 18:43

was ist mit dem jahr 01?

6. Comment von: Struppi
24. November 2009: 12:10

Du meinst daas Jahr 1901?
Die Differenz zwischen dem 1.1.1901 und dem 1.1.2009 beträgt 39447 und das scheint richtig zu sein.

7. Comment von: philipp
1. February 2010: 10:15

nein ich meint das jahr 3001. wie ist es damit?

8. Comment von: Struppi
1. February 2010: 12:15

Ich weiß nicht, was du von mir Wissen willst, auch die Anzahl der Tage wird berechnet. Was soll also damit sein?

9. Comment von: Robert
21. March 2010: 15:59

Hallo, ich bekomme bei anderen Berechnungsseiten bis zum heutigen Tag 8998 raus hier aber 8999…
Ist hier evtl. ein Fehler drin….

10. Comment von: Struppi
22. March 2010: 9:14

Ich hab versucht welche zu finden, ich finde aber keine anderen Berechnungseiten. Doch im Vergleich zu Open Office rechnet meine Rechung richtig.
Es wäre aber auch hilfreich gewesen, wenn du geschrieben hättest, was du berechnen willst.

11. Comment von: minika
4. August 2010: 10:34

Hallo Struppi,

ist ne coole Sache, die du hier kreiert hast :) Respekt!

12. Comment von: Herr Matter
29. September 2010: 10:08

Danke für die gute Arbeit.

Detail: Ich habe ihr Programm benutzt um die Rechungen meiner Schüler zu überprüfen, dabei haben wir bemerkt, dass bei ihrem Programm das Jahr 2000 als Schaltjahr gerechnet wird, jedes Schaltjahr, dass durch 400 geteilt wird, ist jedoch ausnahmsweise kein Schaltjahr.

13. Comment von: Struppi
29. September 2010: 10:33

Danke, solche Tests braucht man als Programmierer ;-)

Da die Datumsberechnung an sich, nicht von mir kommt, sondern aus dem Date-Objekt von Javascript, gehe ich eigentlich von der Korrektheit aus.

Die Regel ist, soweit ich Wikipedia verstehe, aber umgekehrt. Alle Jahre die durch 100 geteilt werden können sind keine Schaltjahre und die die durch 400 geteilt werden können sind doch welche.

14. Comment von: Rolf
31. January 2011: 19:14

Hallo Struppi,

nein, Deine Funktion rechnet nicht richtig, wenn ich als Datum den 31.1.1500 eingebe. Bedenke die Gregorianische Kalenderreform ;-)

Viele Grüße aus Oppenheim,
Rolf

15. Comment von: Makrele
9. February 2011: 11:10

Vielen Dank für diese Berechnungsmöglichkeit. Hat mir sehr geholfen… und umständliche Rechnereien erspart.
DANKE!

16. Comment von: chrissy
19. April 2011: 22:46

Danke für diese seite, erspart mir viel nachdenken :b

17. Comment von: philipp sander
21. December 2011: 16:28

bedenkst du in deiner rechnung das 1900 KEIN schaltjahr war?
wenn modulo 400 = 0 => schaltjahr
wenn modulo 100 = 0 => kein schaltjahr
wenn modulo 4 = 0 => schaltjahr

18. Comment von: Struppi
22. December 2011: 7:51

Warum fragst du?

“Ich” berechne das ja nicht, sondern Javascript. Aber du kannst es einfach prüfen, in dem du die Differenz zwischen dem 1.1.1900 und 1.1.1901 berechnest.

19. Comment von: ursula1956
18. January 2012: 19:13

wüsste auch gerne wie lange ich schon spiele
danke

20. Comment von: matze
11. July 2014: 1:00

>> Die aktuell hier dargestellte Version zeigt bei der Berechnung das gleiche Ergebnis an wie z.b. […] OpenCalc.
nein, tut sie nicht.

teste mal: 1.1.1900 bis 11.7.2014
hier: 41829
ocalc: 41831

21. Comment von: struppi
15. July 2014: 23:28

Hmm, bei mir zeigt LibreOffice auch 41.829 Tage an.

Leave a comment

Name (required)
Mail (wird nicht angezeigt) (required)
Website

Folgende HTML Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot kostenloser Counter Browser-Statistiken
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful