public static void Main()
var timeZoneInfo = TimeZoneInfo.GetSystemTimeZones().FirstOrDefault(tzi => tzi.Id.Equals("Europe/London", StringComparison.InvariantCultureIgnoreCase));
Console.WriteLine($"No. of adjustment rules: {timeZoneInfo.GetAdjustmentRules().Count()}");
var firstRule = timeZoneInfo.GetAdjustmentRules().FirstOrDefault(r => new DateTime(2021,03,28,1,59,0) >= r.DateStart && new DateTime(2021,03,28,1,59,0) <= r.DateEnd);
Console.WriteLine($" Day: {firstRule.DaylightTransitionStart.Day}");
Console.WriteLine($" DayOfWeek: {firstRule.DaylightTransitionStart.DayOfWeek}");
Console.WriteLine($"IsFixedDateRule: {firstRule.DaylightTransitionStart.IsFixedDateRule}");
Console.WriteLine($" Month: {firstRule.DaylightTransitionStart.Month}");
Console.WriteLine($" TimeOfDay: {firstRule.DaylightTransitionStart.TimeOfDay}");
Console.WriteLine($" Week: {firstRule.DaylightTransitionStart.Week}");
Console.WriteLine($"Offset at 01:59 on 2021-03-28: {timeZoneInfo.GetUtcOffset(new DateTime(2021,03,28,1,59,0)).Hours}");
Console.WriteLine($"Offset at 02:00 on 2021-03-28: {timeZoneInfo.GetUtcOffset(new DateTime(2021,03,28,2,0,0)).Hours}");