You could do it step by step:
If date 1 is not empty and not in the past set day 1 as result. Otherwise, set result to empty.
If date 2 is not empty and not in the past {if result is empty set result to date 2, else if date 2 < result set date 2}
If date 3 is not empty and not in the past {if result is empty set result to date 3, else if date 3 < result set date 3}
If date 4 is not empty and not in the past {if result is empty set result to date 4, else if date 4 < result set date 4}
If each date was empty, your result will also be empty. If not, your result contains the smallest date.