Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datediff - Ergebnis ist falsch

Datediff - Ergebnis ist falsch
01.04.2017 14:48:51
Edwin

Hallo,
debug.Print DateDiff("yyyy", CDate("01.04.2017"), CDate("01.03.2042"))
liefert als Ergebnis 25
Es sind aber nur 24 Jahre und 11 Monate, also keine 25 Jahre.
Was läuft hier falsch?
LG
Edwin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datediff - Ergebnis ist falsch
01.04.2017 16:04:31
Werner
Hallo Edwin,
wahrscheinlich viel zu kompliziert aber:
Public Sub Datum()
Dim loJahre As Long
Dim loMonate As Long
loMonate = DateDiff("m", CDate("01.04.2017"), CDate("01.03.2042"))
loJahre = DateDiff("yyyy", CDate("01.04.2017"), CDate("01.03.2042")) * 12
If loJahre > loMonate Then
loJahre = loJahre / 12 - 1
Else
loJahre = loJahre / 12
End If
loMonate = loMonate - (loJahre * 12)
MsgBox loJahre & " Jahre und " & loMonate & " Monate"
End Sub
Gruß Werner
so geht es
01.04.2017 18:03:03
Edwin
Hallo,
debug.Print int(DateDiff("m", CDate("01.04.2017"), CDate("01.03.2042"))/12)
Aber die Frage warum DateDiff falsch rechnet, ist trotzdem noch nicht beantwortet.
LG
Edwin
Anzeige
AW: so geht es
01.04.2017 18:19:59
Werner
Hallo Edwin,
wenn du nur die Jahre willst, dann ja.
Falsch rechnen tut DateDiff nicht.
Bei DateDiff("YYYY", ...... vergleicht DateDiff nur die Jahreswerte, sprich zieht ganz einfach von der zweiten Jahreszahl die erste Jahreszahl ab. Die Monate bleiben unberücksichtigt.
Und 2042 - 2017 ergibt halt einfach 25
Gruß Werner
yyyy-2042-yyyy2017= 25 Jahre ;-) oT
01.04.2017 18:21:03
robert
Dann ziehe doch einfach 1 ab owT
01.04.2017 17:29:43
RPP63
Gruß Ralf
AW: Dann ziehe doch einfach 1 ab owT
01.04.2017 18:02:18
Werner
Hallo Ralf,
stehe ich jetzt auf dem Schlauch?
Ich kann doch nicht einfach 1 abziehen. Was wäre dann damit?
MsgBox DateDiff("yyyy", CDate("01.04.2017"), CDate("01.04.2018")) - 1
Gruß Werner
Anzeige
AW: Dann ziehe doch einfach 1 ab owT
01.04.2017 18:07:58
RPP63
Hi Werner!
Ja, das war ein Rohrkrepierer von mir.
Gruß Ralf
AW: Datediff - Ergebnis ist falsch
02.04.2017 16:07:45
Dieter(Drummer)
Hallo Erwin,
ich habe mal ein bischen probiert, warum das Ergebnis 25 und nicht 24 (komplette) Jahre ist.
Der Zeitraum 01.04.2017 bis 01.03.2042 sind gesamt 299 Monate. 299 Monate/12 (1 Jahr = 12 Monate), ergibt 24,91666667. Es wird also für gesuchte Jahre gerundet auf 25.
Du wirst dies sicher auch schon bemerkt haben.
Als "Datedif-Formel" innerhalb der Tabelle, ist das Ergebnis mit der Angabe von 24 Jahren (komplette Jahre) ok. Warum es in VBA das nicht klappt, kann ich nicht feststellen, außer eben durch Rundung der Jahre.
Ich bin kein Experte, aber es ist eine interessante Sache.
Gruß, Dieter(Drummer)
Anzeige
AW: Datediff - Ergebnis ist "Richtig", denn..
02.04.2017 16:23:35
robert
wenn man als Argument "YYYY" angibt, dann werden eben die Jahre
gerechnet.
und 2042-2017=25 Jahre-siehe auch Antwort von Werner!
AW: Datediff - rechnet teilw. falsch
02.04.2017 21:20:18
Gerd L
Hallo,
das Ding heißt Datumsdifferenz u. rechnet "kalifornisch". :-)
Debug.Print DateDiff("yyyy", CDate("01.01.2017"), CDate("31.12.2017"))
Debug.Print DateDiff("yyyy", CDate("31.12.2017"), CDate("01.01.2018"))
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige