27. Oktober 2008 11:49
27. Oktober 2008 15:24
28. Oktober 2008 08:04
FLD_str := RS.Fields.Item('Start').Value;
IF STRLEN(FLD_str) > 0 THEN
EVALUATE(FLD_time, FLD_str)
ELSE
FLD_time := TIME;
ZeZeile.VALIDATE(Erfassungszeit, CREATEDATETIME(FLD_date, FLD_time));
28. Oktober 2008 10:08
28. Oktober 2008 11:34
fnDTWinterKorrektur(parDateTime : DateTime) : DateTime
//**************************************************************************
//***** Korrektur der Anzeige von Datetime-Werten in der Winterzeit
//***** Hintergrund: Datetime-Werte werden als UTC gespeichert. In der
//***** Winterzeit stimmt daher die Anzeige in Formularen nicht mehr.
//***** varDatumL: Date
//***** varDateL: Record (Date)
//***** varSommerzeitDatumL: Date
//***** varWinterzeitDatumL : Date
//**************************************************************************
varDatumL := DT2DATE(parDateTime);
IF varDatumL <> 0D THEN BEGIN
//Sommerzeitwechsel holen - letzter Sonntag im März
varDateL.RESET;
varDateL.SETRANGE(varDateL."Period Type",varDateL."Period Type"::Date);
varDateL.SETRANGE(varDateL."Period Start",
DMY2DATE(1,3,DATE2DMY(varDatumL,3)),
fnHoleGrenzDatum(3,DATE2DMY(varDatumL,3),'LETZTER'));
varDateL.SETRANGE(varDateL."Period No.",7);
IF varDateL.FINDLAST THEN
varSommerzeitDatumL := varDateL."Period Start"
ELSE
ERROR('Kann keine Sommerzeitumstellung ermitteln (letzter Sonntag im März)');
//Winterzeitwechsel holen - letzter Sonntag im Oktober
varDateL.RESET;
varDateL.SETRANGE(varDateL."Period Type",varDateL."Period Type"::Date);
varDateL.SETRANGE(varDateL."Period Start",
DMY2DATE(1,10,DATE2DMY(varDatumL,3)),
fnHoleGrenzDatum(10,DATE2DMY(varDatumL,3),'LETZTER'));
varDateL.SETRANGE(varDateL."Period No.",7);
IF varDateL.FINDLAST THEN
varWinterzeitDatumL := varDateL."Period Start"
ELSE
ERROR('Kann keine Winterzeitumstellung ermitteln (letzter Sonntag im Oktober)');
//Entsprechend Sommer- oder Winterzeit die Datetime anpassen
IF (varDatumL < varWinterzeitDatumL) AND (varDatumL >= varSommerzeitDatumL) THEN
//Sommerzeit
EXIT(parDateTime)
ELSE
//Winterzeitanzeige: Zeit anpassen
EXIT(parDateTime + 3600000);
END ELSE
EXIT(0DT);
18. November 2008 13:11