Как смоделировать переход на летнее время в модульном тесте?

у меня есть код, который сравнивает последнюю метку времени с фактической меткой времени. Если фактическая отметка времени предшествует последней отметке времени, системное время было изменено. Из-за перехода с или на летнее время я работаю с UTC.
Теперь я хотел бы написать модульный тест для этой особой ситуации.

public void TransitionFromDSTToNonDST()
{
    var dayLightChangeEnd= TimeZone.CurrentTimeZone.GetDaylightChanges(DateTime.Now.Year).End;
    var stillInDaylightSavingTime= dayLightChangeEnd.Subtract(TimeSpan.FromMinutes(62));
    //stillInDaylightSavingTime.IsDaylightSavingTime() returns true
    //stillInDaylightSavingTime is 01.58 am
    var noDaylightSavingTimeAnymore= dayLightChangeEnd.Subtract(TimeSpan.FromMinutes(32));
    //noDaylightSavingTimeAnymore.IsDaylightSavingTime() returns false
    //noDaylightSavingTimeAnymore is 02.28 am
}

Но на самом деле я хотел бы смоделировать следующее:

var stillInDaylightSavingTime = //for example 02.18 am BEFORE switching to Non-DST
var noDaylightSavingTimeAnymore = //for example 02.10 am AFTER switching to Non-DST

Итак, вопрос в том, как я могу определить, что 02.18 - летнее время или нет.

8
задан WaltiD 17 July 2011 в 19:36
поделиться