Anmelden

View Full Version : Datumsvergleich ttmmjjjj mit ttmmjj



haertl
11-05-06, 08:51
Hallo Forum,
kann ich ein Datum im Format tt.mm.jjjj mit einem
Datum im Format tt.mm.jj vergleichen?
Wenn ja, Wie wird der Vergleich gehandhabt ?
Wird intern ein Wert benutzt der das Jahrhundert zuteilt ?
Z.B. tt.mm.90 --> tt.mm.1990
tt.mm.01 --> tt.mm.2001

Ich habe folgendes codiert:
D#ESDTVO: Bildschirm Eingabedatum im Format tt.mm.jjjj (Datumsfeld)
D#ESDTBI: Bildschirm Eingabedatum im Format tt.mm.jjjj (Datumsfeld)
ARANL: Dateifeld im Format ttmmjj (numerisch, gepackt, 6 Stellen)
Dateiaufbau nicht änderbar, da Standardsoftware


IF (D#ESDTVO <> %DATE(01010001:*EUR) OR D#ESDTBI // Datum eingegeben ?
<> %DATE(01010001:*EUR)) AND
(D#ESDTVO > %DATE(ARANL:*EUR) OR D#ESDTBI // Datum außerhalb Auswertungszeitraum ?
< %DATE(ARANL:*EUR));
ITER; // DS ÜBERLESEN
ENDIF;

Fehlermeldung:

*RNF7510 30 474 013500 Der Operand ARANL ist zu klein, um ein Datum mit dem Format
*EUR vollständig aufnehmen zu können.

Danke für alle Antworten

Frank Hildebrandt
11-05-06, 09:10
Versuch mal den. %DATE(ARANL:*DMY)

Fuerchau
11-05-06, 09:22
Mit %DATE(VAR:FMT) wird ein beliebiger Wert in ein *ISO-Format umgewandelt !
Die FMT-Angabe ist das VON-Format, also die Quelle.

*DMY
*MDY
*YMD

Jahr = 1940 - 2039

*CYMD
*CMDY
*CDMY

Jahr = 1900 - 2899

*ISO
*EUR
*USA
*JIS
*LONGJUL

Jahr = 0001 - 9999

haertl
11-05-06, 10:33
IF (D#ESDTVO <> %DATE(01010001:*EUR) OR D#ESDTBI // Datum eingegeben ?
<> %DATE(01010001:*EUR)) AND
(D#ESDTVO > %DATE(ARANL:*DMY) OR D#ESDTBI // Datum außerhalb Auswertungszeitraum ?
< %DATE(ARANL:*DMY));
ITER; // DS ÜBERLESEN
ENDIF;

Wenn ich das richtig verstehe, läuft es also so ab:
1. D#ESDTVO: Benutzer gibt 10.05.2006 ein
D#ESDTBI: Benutzer gibt 31.05.2006 ein
2. Datum wird in *ISO umgewandelt: 20060510
20060531
3. ARANL: enthält 130599

4. Datum wird in *ISO umgewandelt, und weil das Quellformat *DMY ist,
gilt bei Y 00 bis 39 Jahr wird umgewandelt in 20000512 bis 20390512
bei Y 40 bis 99 Jahr wird umgewandelt in 19400512 bis 19990512
5. Daten werden verglichen

Frank Hildebrandt
11-05-06, 11:24
Genau so läuft das .