ALTER SESSION SET NLS_LANGUAGE=english; -- First day of week
SELECT
NEXT_DAY(LAST_DAY(TO_DATE(TO_CHAR('01/10/' -- Last Sunday of October 02:00
|| (EXTRACT(YEAR FROM SYSDATE)-5 + level) || '02:00:00'),
'DD/MM/YYYY HH24:MI:SS')) - INTERVAL '7' DAY, 'SUNDAY') AS H_WINTER,
NEXT_DAY(LAST_DAY(TO_DATE(TO_CHAR('01/03/' -- Last Sunday of March 02:00
|| (EXTRACT(YEAR FROM SYSDATE)-5 + level) || '02:00:00'),
'DD/MM/YYYY HH24:MI:SS')) - INTERVAL '7' DAY, 'SUNDAY') AS H_SUMMER
FROM DUAL CONNECT BY level <=10;
-- ⇓ Test it ⇓ (Fiddle source link)