In reply to Rick Wicklin.

This is your code adapted to DST in France (simpler)

/*Compute the beginning and end of daylight saving time for several years
(adapté à la France)*/
Data DST;
do year = 2014 to 2022;
ldo_mar = mdy(3,31,year); /*Last day of March*/
ldo_oct = mdy(10,31,Year); /*Last day of October*/
/*DST begins on the last sunday in March*/
dst_beg = intnx("week",ldo_mar,0);
/*Dst ends on the last Sunday in October*/
dst_end = intnx("week",ldo_oct,0); output;
end;
run;

Proc print data = Dst noobs label;
format dst_beg dst_end Date5.;
var Year dst_beg dst_end;
label Year = "Année" dst_beg = "Début" dst_end = "Fin";
run;