Created a new user profile field type called datetime.
Can choose a start year, end year and whether to include the time. If the field is set to required then the date field displayed is not optional, else it is and has a checkbox where you can enable/disable the field. If the time is specified then the user can select a time and when displayed it is shown, else not. Example of popular use: date of birth.