Please note that this is asking a question about constructors, not about classes which handle time.
Suppose I have a class like this:
There is one more possible way. I am not saying this is in any way preferred, only adding it for completeness:
Create a factory function that creates an instance of your class on the heap, and returns a null pointer if the creation fails.
This is not really appropriate with valuetype-like objects as dates, but there might be useful applications.