in meinen Fall ist der Parameter in XF_Kw2Date( YYYYWW ), was ein falsche Jahr bekommt, ja das Problem .
ich möchte aber nun nicht jedes Programm korrigieren welches die Kombination von beiden Function nutzen.
nun habe ich beide Function in einem PRG z.h. eine Fieldwide STATIC is in beiden Function "sichtbar"
ich brauche also eine Korrektur Faktor wo ich vorher das hatte
Code: Alles auswählen
nWoche := IF( nWoche < 53, nWoche, IF( nDay > 3, nWoche, 1 ) )
wird zu
Code: Alles auswählen
STATIC nSilverster := 0
FUNCTION XF_WocheJahr( dDatum )
...
IF nWoche > 52
IF XF_Schaltjahr( YEAR(dDatum) )
...
ELSE
// wenn 4 Tage oder mehr im neuen Jahr KW 1
IF nDay > 3
nSilverster := 0
ELSE
nWoche := 1
nSilverster := 1
ENDIF
ENDIF
ELSE
nSilverster := 0
ENDIF
FUNCTION XF_Kw2Date( YYYYWW )
LOCAL nJahr := VAL( LEFT( YYYYWW, 4 ) )+nSilverster
...
RETURN dDatum
somit kann ich alle Programme, welche diese Kombination von beiden Function nutzen, ohne grosse Änderungen weiter nutzen und muss keinen Code ändern