For what it is worth, I spend >80% of my time working with dates/timestamps, trying to turn them into Magnitudes for manipulations. The other 20%, I really enjoy them as timespans with locales since I deal with times from around the world. But the two uses are not quite easy to deal with - doable, just not quite intuitive.
So if we store the start time isn't the conversion to a magnitude simply an inst var access?
That's mostly what I do. But it depends on how the Date is created. For instance, unless you live in the UTC time zone, the following is true:
Date today = DateAndTime now asDate "==>true" Date today start = DateAndTime now asDate start "==>false" Date today start asSeconds = DateAndTime now asDate start asSeconds "==>true"
And, of course, it isn't a DAY that we are talking about - it is a DateAndTime (a specific point in time).
It's just remembering which corner cases are true, and which aren't, at any given time.
(as an aside, I find it interesting that Timespan current gives you a day. It is what Date today is based off of - so don't ever change that Timespan #current method!)
-cbc