The switch points are 2:00AM on the first Sunday in April, moving forwards to 3:00AM; and 2:00AM on the last Sunday in October, moving backwards to 1:00AM. If the DST extension is not given in the date format, there is an ambiguous hour in October which cannot be converted with certainty.
The day of the week for a given date can be computed with packages like Date::ICal.