Hallo,
ich möchte gerne eine Zeitumstellung am BP ausgeben, wenn es soweit ist. Damit der Bediener die Zeit im TP manuel umstellen kann (da es automatisch nicht geht).
Ein Ex-Kollege hatte mal eine Funktion geschrieben.
Diese Funk. meldet auch 2 mal im Jahr die Umstellung, aber an den falschen Tagen/Monaten.
FUNC bool fSommerWinterTag ()
VAR bool bLocHilf;
VAR bool bLocZeitUmstellen;
VAR bool bLocWechselMerker;
VAR num nLocSommer;
VAR num nLocWinter;
VAR num nLocSommerZWB;
VAR num nLocWinterZWB;
VAR string strLocPart;
VAR num nLocZahl1;
VAR num nLocZahl2;
VAR num nLocZahl3;
VAR num strLocStdNeu;
!--Aktuelle Uhrzeit und Datum auslesen
strUhrNeu:=CTime();
strDatNeu:=CDate();
bLocHilf:=StrToVal(StrPart(strDatNeu,9,2),nTagNeu);
bLocHilf:=StrToVal(StrPart(strDatNeu,6,2),nMonNeu);
bLocHilf:=StrToVal(StrPart(strDatNeu,1,4),nJahNeu);
bLocHilf:=StrToVal(StrPart(strUhrNeu,1,2),strLocStdNeu);
!
nLocSommerZWB:=(nJahNeu-2002)+(Trunc((nJahNeu-2000)*0.25));
nLocSommer:=31-(Round(7*((nLocSommerZWB/7)-Trunc(nLocSommerZWB/7))));
nLocWinterZWB:=(nJahNeu-2004)+(Trunc((nJahNeu-2004)*0.25));
nLocWinter:=31-(Round(7*((nLocWinterZWB/7)-Trunc(nLocWinterZWB/7))));
!
nLocZahl1:=(nMonNeu)+(nTagNeu/100);
nLocZahl2:=(nMonNeu)+(nLocSommer/100);
nLocZahl3:=(nMonNeu)+(nLocWinter/100);
IF (nLocZahl1>=nLocZahl2) AND (nLocZahl1<nLocZahl3) THEN
nStdNeu:=strLocStdNeu;
strLocPart:=StrPart(strUhrNeu,3,6);
strUhrNeu:=NumToStr(nStdNeu,0)+strLocPart;
bLocZeitUmstellen:=TRUE;
ELSE
nStdNeu:=strLocStdNeu;
strLocPart:=StrPart(strUhrNeu,3,6);
strUhrNeu:=NumToStr(nStdNeu,0)+strLocPart;
!--Merker, dass man die Zeit beim Start von Main einstellen soll.
!--Die Zeit sollte (egal ob im Sommer oder Winter) nach Winterzeit (für Michael: nach Normalzeit)
!--eingestellt werden, sonnst wird das ganze verkehrt abgespeichert!
bLocZeitUmstellen:=FALSE;
ENDIF
bLocWechselMerker:=bZeitUmstellen<>bLocZeitUmstellen;
bZeitUmstellen:=bLocZeitUmstellen;
RETURN bLocWechselMerker;
!
ENDFUNC
Kann mir da einer Helfen?