У меня есть код, который сравнивает последнюю отметку времени с фактической отметкой времени. Если фактическая временная метка предшествует последней временной метке, системным временем манипулируют. Из-за перехода с или на летнее время я работаю с 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 утра или летнее время или нет.