Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
(DateTimeUTC as datetime) as datetime =>
let
/*
================================================================================
Wesentliche Bestandteile der Funktion basieren auf der Arbeit von 'Frank Tonsen'
================================================================================
*/
Year = Date.Year(DateTimeUTC),
//Ermittlung der Grenze der Winterzeit --> letzter Sonntags im März, 00:59:59 Uhr UTC
StartSommerzeit = #datetime(Year, 3, 31, 0, 0, 0) - #duration((Date.DayOfWeek(#date(Year, 3, 31), Day.Sunday)), -1, 0, 0),
//Ermittlung der Grenze der Sommerzeit --> letzter Sonntags im März, 00:59:59 Uhr UTC
EndSommerzeit = #datetime(Year, 10, 31, 0, 0, 0) - #duration((Date.DayOfWeek(#date(Year, 10, 31), Day.Sunday)), -1, 0, 0),
/*
Berechnung Zeitverschiebung:
*/
OffsetToLocal = if DateTimeUTC > StartSommerzeit and DateTimeUTC <= EndSommerzeit then 2 else 1,
//Umrechnung UTC in lokale Zeit
Output = DateTimeUTC + #duration(0,OffsetToLocal,0,0)
in
Output
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.