From: Paul C. <pa...@se...> - 2009-04-02 08:55:12
|
Hi, I have implemented a very simple DT_STOPWATCH class for doing simple timing stuff (ie. start, stop & elapsed_time). In that class I use the feature DT_TIME.duration. To my surprise I occasionally get negative seconds and milliseconds. In DT_TIME there is the feature: duration (other: like Current): DT_TIME_DURATION is -- Duration between `other' and `Current' do Result := time_duration (other) end I then realize that DT_TIME.duration uses DT_TIME.time_duration which does: create Result.make_precise (hour - other.hour, minute - other.minute, second - other.second, millisecond - other.millisecond) where Result & other are DT_TIME. I now realize that I must use DT_TIME.canonical_duration to get the result I expect since it calculates the difference (correctly) based on the milliseconds count of both DT_TIME instances. My questions are: 1. Why doesn't DT_TIME.duration use DT_TIME.canonical_duration? 2. When & why does anyone want to use DT_TIME.time_duration in its current implementation? 3. DT_TIME.time_duration has a misleading name. Better is DT_TIME.time_unit_differences or something like that which says what it does. 4. Is the Gobo project interested in my DT_STOPWATCH class? I'm using: * Gobo 3.8 * EiffelStudio: 6.2 * On Linux/gcc /Paul -- Paul Cohen www.seibostudios.se mobile: +46 730 787 035 e-mail: pau...@se... |