All cool that you are just starting (we all have at some point
Here are some points to help you on your way:
1. test and [ are synonymous (ie do the same thing), so if you look up your books or associated bash website have a look at the section on testing, specifically the -d and -f options (there are others for files but will let you find them out). Also, if you do a 'man test' the information is there as well.
2. sanitizing is meant in the way in which you make sure you are getting your desired input. ie the date is in the order you require and the user has entered Y or y.
3. Your extra 'if' idea for testing a null variable will fail just as poorly
I would recommend looking up the difference between [ and [[ and again some test options such as -n or -z
4. Last I would mention that instead of multiple 'if' statements you may wish to lookup the 'case' statement
Finally, good luck and hope you get into it