Given that you have at your disposal a full-featured date/time manipulation library that is known to pass all of the great-many self tests that its author has devised to throw at it ... and furthermore given that this library has been deemed good-enough to be accepted into the Perl Core Distribution ... I cordially suggest that one would be rather a Fool not to use it. Pick an arbitrary date, then use this known-good library to calculate three date+time values (start, end, current ...), then simply "do the math."
You have plenty of headaches that are worthy of your one-of-a-kind creativity. This is not one of them.