# HG changeset patch # User Jay Belanger # Date 1188005731 0 # Node ID ae2770ed1e8eac160050c8b0925c3dc01da5a440 # Parent afbae3f37cafcc20a9b600afd0f73fc1e8557b13 (Time Zones): Explain that Calc will by default use daylight saving time determined by the calendar. diff -r afbae3f37caf -r ae2770ed1e8e man/calc.texi --- a/man/calc.texi Sat Aug 25 00:30:23 2007 +0000 +++ b/man/calc.texi Sat Aug 25 01:35:31 2007 +0000 @@ -17095,69 +17095,45 @@ @cindex @code{TimeZone} variable @vindex TimeZone -With no arguments, @code{calc-time-zone} or @samp{tzone()} obtains an -argument from the Calc variable @code{TimeZone} if a value has been -stored for that variable. If not, Calc runs the Unix @samp{date} -command and looks for one of the above time zone names in the output; -if this does not succeed, @samp{tzone()} leaves itself unevaluated. -The time zone name in the @samp{date} output may be followed by a signed -adjustment, e.g., @samp{GMT+5} or @samp{GMT+0500} which specifies a -number of hours and minutes to be added to the base time zone. -Calc stores the time zone it finds into @code{TimeZone} to speed -later calls to @samp{tzone()}. - -The special time zone name @code{local} is equivalent to no argument, -i.e., it uses the local time zone as obtained from the @code{date} -command. - -If the time zone name found is one of the standard or daylight -saving zone names from the above table, and Calc's internal -daylight saving algorithm says that time and zone are consistent -(e.g., @code{PDT} accompanies a date that Calc's algorithm would also -consider to be daylight saving, or @code{PST} accompanies a date -that Calc would consider to be standard time), then Calc substitutes -the corresponding generalized time zone (like @code{PGT}). - -If your system does not have a suitable @samp{date} command, you -may wish to put a @samp{(setq var-TimeZone ...)} in your Emacs -initialization file to set the time zone. (Since you are interacting -with the variable @code{TimeZone} directly from Emacs Lisp, the -@code{var-} prefix needs to be present.) The easiest way to do -this is to edit the @code{TimeZone} variable using Calc's @kbd{s T} -command, then use the @kbd{s p} (@code{calc-permanent-variable}) -command to save the value of @code{TimeZone} permanently. +With no arguments, @code{calc-time-zone} or @samp{tzone()} will by +default get the time zone and daylight saving information from the +calendar (@pxref{Daylight Saving,Calendar/Diary,The Calendar and the Diary, +emacs,The GNU Emacs Manual}). To use a different time zone, or if the +calendar does not give the desired result, you can set the Calc variable +@code{TimeZone} (which is by default @code{nil}) to an appropriate +time zone name. (The easiest way to do this is to edit the +@code{TimeZone} variable using Calc's @kbd{s T} command, then use the +@kbd{s p} (@code{calc-permanent-variable}) command to save the value of +@code{TimeZone} permanently.) +If the time zone given by @code{TimeZone} is a generalized time zone, +e.g., @code{EGT}, Calc examines the date being converted to tell whether +to use standard or daylight saving time. But if the current time zone +is explicit, e.g., @code{EST} or @code{EDT}, then that adjustment is +used exactly and Calc's daylight saving algorithm is not consulted. +The special time zone name @code{local} +is equivalent to no argument; i.e., it uses the information obtained +from the calendar. The @kbd{t J} and @code{t U} commands with no numeric prefix -arguments do the same thing as @samp{tzone()}. If the current -time zone is a generalized time zone, e.g., @code{EGT}, Calc -examines the date being converted to tell whether to use standard -or daylight saving time. But if the current time zone is explicit, -e.g., @code{EST} or @code{EDT}, then that adjustment is used exactly -and Calc's daylight saving algorithm is not consulted. - -Some places don't follow the usual rules for daylight saving time. -The state of Arizona, for example, does not observe daylight saving -time. If you run Calc during the winter season in Arizona, the -Unix @code{date} command will report @code{MST} time zone, which -Calc will change to @code{MGT}. If you then convert a time that -lies in the summer months, Calc will apply an incorrect daylight -saving time adjustment. To avoid this, set your @code{TimeZone} -variable explicitly to @code{MST} to force the use of standard, -non-daylight-saving time. +arguments do the same thing as @samp{tzone()}; namely, use the +information from the calendar if @code{TimeZone} is @code{nil}, +otherwise use the time zone given by @code{TimeZone}. @vindex math-daylight-savings-hook @findex math-std-daylight-savings -By default Calc always considers daylight saving time to begin at -2 a.m.@: on the second Sunday of March (for years from 2007 on) or on -the last Sunday in April (for years before 2007), and to end at 2 a.m.@: -on the first Sunday of November. (for years from 2007 on) or the last -Sunday in October (for years before 2007). These are the rules that have -been in effect in much of North America since 1966 and takes into -account the rule change that began in 2007. If you are in a -country that uses different rules for computing daylight saving time, -you have two choices: Write your own daylight saving hook, or control -time zones explicitly by setting the @code{TimeZone} variable and/or -always giving a time-zone argument for the conversion functions. +When Calc computes the daylight saving information itself (i.e., when +the @code{TimeZone} variable is set), it will by default consider +daylight saving time to begin at 2 a.m.@: on the second Sunday of March +(for years from 2007 on) or on the last Sunday in April (for years +before 2007), and to end at 2 a.m.@: on the first Sunday of +November. (for years from 2007 on) or the last Sunday in October (for +years before 2007). These are the rules that have been in effect in +much of North America since 1966 and take into account the rule change +that began in 2007. If you are in a country that uses different rules +for computing daylight saving time, you have two choices: Write your own +daylight saving hook, or control time zones explicitly by setting the +@code{TimeZone} variable and/or always giving a time-zone argument for +the conversion functions. The Lisp variable @code{math-daylight-savings-hook} holds the name of a function that is used to compute the daylight saving @@ -17221,7 +17197,8 @@ from 3 a.m.@: to 4 a.m. At the end of daylight saving time, the hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time form that falls in this hour results in a time value for the first -manifestation of that time (@emph{not} the one that occurs one hour later). +manifestation of that time (@emph{not} the one that occurs one hour +later). If @code{math-daylight-savings-hook} is @code{nil}, then the daylight saving adjustment is always taken to be zero.