Try using the System.Timezone class. http://msdn.microsoft.com/en-us/library/system.timezone.aspx
] This class has a really cool function called "IsDaylightSavingTime(DateTime)". You could leverage that function with the current date to see if you're in DST or not.
If you store the previous DST check somewhere, you can compare the old with the current and detect when the change takes place. Since its part of the framework, it should be updated if the DST parameters change for that location, which they occasionally do.