Sehr gut!
Das wäre auch falsch, weil darin der 31.12. nicht enthalten. Du musst dir die Zeit 00:00 Uhr dazudenken, dann wird dir das klar.
Und in Schaltjahren Taggenau 366? Und was ist mit Schaltsekunden?msfox hat geschrieben: ↑25.09.2024 20:07OT: Bei uns ist immer noch wichtig, wie der Kunde ein Jahr definiert - hauptsächlich bei der Abrechnung von Beträgen. Taggenau 360, wenn jeder Monat mit 30 Tagen definiert und Jahresbeträge somit gleichmäßig auf Monate aufgeteilt werden sollen. Oder taggenau365.
Real wäre es aber nicht falsch. Wenn man sagt, vom 01.01. - 31.12., dann ist das für mich 1 Jahr.ralf.wenzel hat geschrieben: ↑25.09.2024 21:08Das wäre auch falsch, weil darin der 31.12. nicht enthalten. Du musst dir die Zeit 00:00 Uhr dazudenken, dann wird dir das klar.
Taggenau365 bezieht das Schaltjahr mit 366Tagen mit ein. Dann wird der Jahresbetrag eben durch 366 geteilt. Sekundengenaue Abrechnung gibt es nicht.Und in Schaltjahren Taggenau 366? Und was ist mit Schaltsekunden?
Weil du denkst "01.01. morgens bis 31.12. abends". Das kannst du aber ohne die Angabe der Uhrzeit nicht machen. 01.01.-31.12. setzt voraus, dass an beiden Tagen dieselbe Uhrzeit zum Messen genommen wird und der 31.12. ist eben noch nicht "abgelaufen", darum ist das Jahr noch nicht voll.
DAS ist nicht zu erklären. Weil das in jedem Falle kein volles Jahr ist.black_adept hat geschrieben: ↑25.09.2024 15:04Mach das ganze bitte mal für die Datümer 2.10.2022 und 1.10.2023 und staune.
Genau diese Art Antworten gebe ich auch meinen Kunden wenn ich gerade mal keine Lust habe etwas zu debuggen oder zu korrigieren.msfox hat geschrieben: ↑27.09.2024 09:36Nein, ich habe das Beispiel mit 2.10.2022 und 1.10.2023 gebracht. Die SAP meinte dazu, das sein kein Fehler. Im Grund ist es nicht ausreichend, nur den Fehler in der Methode zu betrachten. Ich soll einen konkreten Fehler in der SAP-Anwendung nennen. Die Methode wird seit 15 Jahren im Bereich der Fälligkeitsverschiebung im RE-FX eingesetzt. Ich müsste also einen Fehler im RE-FX nachweisen...
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZTST
*&---------------------------------------------------------------------*
REPORT ztst.
CLASS lc DEFINITION ABSTRACT FINAL.
PUBLIC SECTION.
CLASS-METHODS full_years_between_dates IMPORTING date1 TYPE d
date2 TYPE d
RETURNING VALUE(years) TYPE i.
ENDCLASS.
CLASS lc IMPLEMENTATION.
METHOD full_years_between_dates.
years = date2(4) - date1(4) - COND #( WHEN date2+4 < date1+4 THEN 1 ).
ENDMETHOD.
ENDCLASS.
PARAMETERS: date1 TYPE d, date2 TYPE d.
START-OF-SELECTION.
DATA(years) = lc=>full_years_between_dates( date1 = date1
date2 = date2 ).
WRITE years.
Und dennoch hat die SAP recht, denn diese Methode oder gar die ganze Klasse ist vermutlich nicht für die freie Verwendung in eigenen Programmen freigegeben (das sind die wenigsten), sondern eben nur Bestandteil von RE-FX. Insofern ist es nicht ausreichend, eine Klasse oder Methode zu suchen, deren Klassen- und Methodennamen eine bestimmte Funktionalität suggerieren und dann davon auszugehen und den Anspruch zu erheben, dass diese Funktionalität gegeben sein muss. Möglicherweise ist es in RE-FX ja tatsächlich so, dass in den Fällen, in denen diese Methode benutzt wird, ein solche Kombination von Datümern nicht eintreten kann.black_adept hat geschrieben: ↑27.09.2024 10:23Genau diese Art Antworten gebe ich auch meinen Kunden wenn ich gerade mal keine Lust habe etwas zu debuggen oder zu korrigieren.msfox hat geschrieben: ↑27.09.2024 09:36Nein, ich habe das Beispiel mit 2.10.2022 und 1.10.2023 gebracht. Die SAP meinte dazu, das sein kein Fehler. Im Grund ist es nicht ausreichend, nur den Fehler in der Methode zu betrachten. Ich soll einen konkreten Fehler in der SAP-Anwendung nennen. Die Methode wird seit 15 Jahren im Bereich der Fälligkeitsverschiebung im RE-FX eingesetzt. Ich müsste also einen Fehler im RE-FX nachweisen...
Du machst den Fehler davon auszugehen, dass die Problemlösungen der SAP-Entwickler was taugen. 😁 Insofern ist Dein Ansatz zwar richtig, aber der Fundus der Problemlösungen sollte Dein eigener sein. Dann weißt Du, was Du daran hast (und hast hoffentlich bessere Problemlösungscodings).ralf.wenzel hat geschrieben: ↑27.09.2024 18:34Naja, ich bin von der Einstellung beseelt, dass man ein Problem nur einmal löst. Das treibt mich dazu, eine schon vorhandene Problemlösung zu verwenden. Das ist eine Grundeinstellung.
Folgende Benutzer bedankten sich beim Autor rob_abc für den Beitrag:
ralf.wenzel