Code Listing 1: Find the last Saturday of each month for a year.

SQL> select next_day(
  2           last_day(
  3               add_months( trunc( sysdate,'y'),rownum-1 ) )-7,
  4               to_char( to_date( '29-01-1927', 'dd-mm-yyyy' ), 'DAY' ) )
  5    from all_objects
  6    where rownum <= 12;
 
NEXT_DAY(
---------
31-JAN-04
28-FEB-04
27-MAR-04
24-APR-04
29-MAY-04
26-JUN-04
31-JUL-04
28-AUG-04
25-SEP-04
30-OCT-04
27-NOV-04
25-DEC-04
 
12 rows selected.