On 2008-07-18 01:22-0000 [EMAIL PROTECTED] wrote: > Hi, > > > Alan W. Irwin wrote: >> On 2008-07-17 22:51+0100 Andrew Ross wrote: >> >>> Actually, while checking the various languages I found a problem with my >>> approach. Obviously my linux system is missing daylight saving >>> information for 1970. Calling >>> >>> t1 = 0; >>> tm = *gmtime(&t1); >>> t2 = mktime(&tm); >>> toff = (PLFLT) difftime(t1,t2); >> >>> returns 3600 for toff at the moment, and not 0 as it should (I'm in the >>> UK). There should be no daylight savings for 1st January so the local >>> time is equivalent to UTC. >> > > There was daylight saving in effect in the UK on 1/1/1970. The UK experimented > with continuous daylight saving from October 1968 till September 1971 > (known as British Standard Time), so in this case toff = 3600 is correct.
Thanks very much, Terrence, for that bit of history which is confirmed in the body of http://en.wikipedia.org/wiki/British_Summer_Time There just doesn't seem to be any end to the way politicians fiddle with "daylight savings", but that is the start of my own personal rant on that subject so I will not take that further here. The logic of example 29 demands that toff be calculated for the same hour offset as in effect for December 1 2005 UTC for each user's locale. Andrew, can't we accomplish that goal by calculating toff _after_ tstart is calculated? I think to accomplish that you only have to start the toff calculation with t0=tstart. For some locales, the local December 1 2005 could be 12 hours (or is that 13 hours?) ahead of or behind December 1 2005 UTC, but the t0=tstart idea should work unless there was a change in "daylight savings" status in that small interval of time in some locale. Of course, a much cleaner solution would be to use timegm (an implementation using the POSIX functions setenv, getenv, tzset, and mktime is given by the GNU/Linux man page, see, e.g., http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/timegm.3.html), but I am not sure that (a) getenv and setenv are available for Windows, and (b) if so whether TZ is a meaningful "environment variable" on that platform that actually affects the results returned by mktime. So I think the above t0=tstart idea is good enough unless someone will do the required Windows research to see if the POSIX way of calculating the equivalent of the GNU/Linux timegm would actually work on the Windows platform. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel