For your second question
I use the "Compare Date Fields" extension from Kaosweaver for cases like this.
This extension compares dates to ensure the order of the dates are correct. This helps reservations systems where departing dates need to be before returning dates.
It's free of charge and can be downloaded here: