Get date from user
If day is not one of (15, 20, 25, 30)
Throw exception
If today is greater than (some limit value) AND
Month is less than this month plus (some limit value)
Throw exception
If date is valid
Set date in Target
Else
Throw exception
I leave you to fill in the details.