Jonathan M Davis wrote:


Sure, a MonthDuration holds the number of months internally as an integral value, but if you have an int floating around by itself, it doesn't have any units, and the programmer has to worry about what the int actually means. They'd then have to worry about the conversions between various units of time (month, day, hour, etc.). The duration structs deal with that for you.

Even worse, what would it mean to add a naked number to a time point? If you add 7 to a date, what does that mean? And even if everyone agreed that it was clear that adding 7 to a date meant adding 7 days to it, adding 7 to a time of day wouldn't mean the same thing, so that naked number could mean very different things when added to two different types of time point. By having a duration type which includes the units, it's taken care of for you. You won't try and add months to time of day, because it won't compile. And if you try and add days to it, it will mean exactly the same thing as if you added days to a date (much as adding days to a time of day is relatively pointless). Overall, it should make the programmer's life easier rather than harder.

Ok, I can see that.


Which is why PosixTimeZone and WindowsTimeZone will be getting that information from the OS, but the OS does not make it easy. On Posix, you have to actually read in the time zone files from disk, and on Windows, you have to read the registry. No system calls are provided to properly deal with time zones. Honestly, time zone support for anything other than the local time zone is very poor on both Posix and Windows systems. And Windows won't even let you set the time zone for your program without setting for the whole OS. It's not a pleasant situation really, but I hope to be able to overcome it well enough that D programmers won't have to worry about it.


I know it's a miserable job (I failed at it, despite spending a great deal of time on it), and since the OS falls down on it, it's a great service to have it in the standard library.
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to