Differenz zwischen 2 Datumsfelder berechnen

Getting started ... Alles für einen gelungenen Start.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Differenz zwischen 2 Datumsfelder berechnen

Beitrag von L0w-RiDer (Expert / 539 / 83 / 2 ) »
Hallo zusammen,

ich möchte den Unterschied zwischen 2 Datumsfelder berechnen, also z.B. 21.04.2005 - 15.08.2003. Das erste Datum könnte z.B. das Herstelldatum sein und das zweite das Verbrauchsdatum. Nun möchte ich das Delta bzw. die Differenz dieser beiden Daten haben und in einem gesonderten Feld ausgeben.

Nun habe ich mir folgende Methode herausgesucht:

CALL METHOD cl_reca_date=>get_date_diff

Ich bekomme mit dieser nun die Jahre, Monate und Tage an Differenz. Findet ihr der Ansatz und alles ist soweit richtig? und wie sollte ich das Ganze am besten in einem Feld darstellen. Ich hätte mein Ausgabefeld auch in der Form JJJJMMDD deklariert.

sieht ja ne bisschen blöd aus, wenn es wie folgt ist 00000215, oder??

Wie würdet ihr so etwas am besten lösen??

Vielen Dank im Voraus.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von wreichelt (Top Expert / 1075 / 32 / 195 ) »
Hallo,

Funktionsbaustein: SD_DATETIME_DIFFERENCE

schon mal versucht ?

Gruß Wolfgang

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von Tron (Top Expert / 1327 / 35 / 333 ) »
Moin.
Meinst Du in etwa so ?

Code: Alles auswählen.

data l_delta type i.
data dat1 type d value '20200115'.
data dat2 type d value '20200101'.

i_delta = dat1 - dat2.
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von L0w-RiDer (Expert / 539 / 83 / 2 ) »
@Jens

Im Prinzip schon.

Die Berechnung wie bei dir funktioniert doch aber nur wenn die Jahre auch gleich sind und im gleichen Monat, oder?

da kommt doch sonst ziemlicher murks raus.

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von Tron (Top Expert / 1327 / 35 / 333 ) »
Moin.

Dem ist nicht so. Die Tagesdifferenz funktioniert eigentlich über einen nahezu unbegrenzten Zeitraum.
Probier es doch mal aus.
Nimm Beispiele für Tage im Februar / mit und ohne Schaltjahr.
Nimm den 1.03.xxxx und ziehe einen Tag ab.
Dann ist das der letzte des Tag im Ferbruar . Entweder der 28. oder der 29.
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von black_adept (Top Expert / 4136 / 131 / 956 ) »
Tron hat geschrieben:
29.04.2020 18:44
Dem ist nicht so. Die Tagesdifferenz funktioniert eigentlich über einen nahezu unbegrenzten Zeitraum.
Probier es doch mal aus.
Nimm Beispiele für Tage im Februar / mit und ohne Schaltjahr.
Nimm den 1.03.xxxx und ziehe einen Tag ab.
Dann ist das der letzte des Tag im Ferbruar . Entweder der 28. oder der 29.
gruß Jens
Sogar die Umstellung vom Julianischen auf den Gregorianischen Kalender im Jahr 1582 wo auf auf Donnerstag, den 4. Oktober Freitag, der 15. Oktober folgte ist von SAP sauber implementiert worden. Auch wenn die meisten Anwendungen diese Jahre kaum brauchen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von deejey (Specialist / 427 / 131 / 45 ) »
Zu Datum fällt mir noch eine Sache ein auf die ich mal vor paar Jahren zufällig gestoßen bin: Da sei VBRK mit 12 Sätzen, die FKDAT = 20190415 haben.

Code: Alles auswählen.

parameters p_fkdat default '20190415'
select count (*) ... where fkdat = p_fkdat => 12 Sätze
write:/ p_fkdat.

Code: Alles auswählen.

data(seldat1) = p_fkdat.
select count (*) ... where fkdat = seldat1 => 12 Sätze
write:/ seldat1.

Code: Alles auswählen.

data(seldat2) = p_fkdat + 5 - 5.
select count (*) ... where fkdat = seldat2 => 12 Sätze
write:/ seldat2.

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von deejey (Specialist / 427 / 131 / 45 ) »
Und was noch am Rande mit Datumsberechnung zu tun hat: mit dem eingebauten Datentyp ACCP (Buchungsperiode JJJJMM) lässt sich nicht rechnen, das muss zu Fuß gemacht werden.

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von L0w-RiDer (Expert / 539 / 83 / 2 ) »
Hi,

okay, vielen Dank schon mal.

i_delta = dat1 - dat2. --> mit dieser Berechnung.

data l_delta type i. --> gibt dies mir dann die Differenz in Tagen, oder??

Re: Differenz zwischen 2 Datumsfelder berechnen

Beitrag von deejey (Specialist / 427 / 131 / 45 ) »
ja, kannst aber auch gleich sagen

Code: Alles auswählen.

data(l_delta) = dat1 - dat2.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2414
Views
Differenz aus Nachkommastellen berechnen
von kbit100 » 11.04.2018 11:55 • Verfasst in ABAP® für Anfänger
4
Antw.
9993
Views
Differenz von Jahren, Monaten, Tagen berechnen
von kbit100 » 07.07.2016 12:55 • Verfasst in ABAP® für Anfänger
4
Antw.
2569
Views
SAP -> CSV = Datumsfelder
von 82kolu1bma » 12.05.2016 13:53 • Verfasst in ABAP® für Anfänger
4
Antw.
1941
Views
Berechnung einer Differenz im ALV
von robin1at » 23.01.2006 13:33 • Verfasst in ABAP® Core
4
Antw.
9811
Views
Differenz in Jahren zwischen 2 Datumsangaben
von sap-known » 17.06.2007 17:26 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.