System.TimeZoneInfo.TransitionPoint C# (CSharp) Method

TransitionPoint() private static method

private static TransitionPoint ( TransitionTime transition, int year ) : System.DateTime
transition TransitionTime
year int
return System.DateTime
		private static DateTime TransitionPoint (TransitionTime transition, int year)
		{
			if (transition.IsFixedDateRule)
				return new DateTime (year, transition.Month, transition.Day) + transition.TimeOfDay.TimeOfDay;

			DayOfWeek first = (new DateTime (year, transition.Month, 1)).DayOfWeek;
			int day = 1 + (transition.Week - 1) * 7 + (transition.DayOfWeek - first + 7) % 7;
			if (day >  DateTime.DaysInMonth (year, transition.Month))
				day -= 7;
			if (day < 1)
				day += 7;
			return new DateTime (year, transition.Month, day) + transition.TimeOfDay.TimeOfDay;
		}