You can perform simple date arithmetic by using out-of-range values for
@var{seconds}, @var{minutes}, @var{hour}, @var{day}, and @var{month};
for example, day 0 means the day preceding the given month.
+
+The old and the new styles to call @code{encode-time} with the same
+values of time fields may give different results. While modernizing
+code that uses obsolescent calling convention, ensure that the list
+argument contains 9 elements. Pay special attention that the @code{dst}
+field does not use @code{nil} expecting that actual value will be
+guessed, pass @samp{-1} instead. During normalizing of values to
+correct state of daylight saving time users may get time shift and even
+wrong date. It may take months to discover such problem. When
+called with multiple arguments, the function ignores equivalent of the
+@code{dst} value and @samp{-1} is effectively used. The new way to call
+@code{encode-time} has an advantage that it is possible to resolve
+ambiguity around backward time shift by passing @code{nil} or @code{t}.
+Unfortunately there are enough cases across the world when a particular
+area is moved to another time zone with no change of daylight saving
+time state. @code{encode-time} may signal an error in response to
+@code{t} passed as @code{dst}. You have to pass @code{zone} explicitly
+as time offset in such case if default ambiguity resolution is not
+acceptable.
@end defun
@node Time Parsing
Years before 1970 are not guaranteed to work. On some systems,
year values as low as 1901 do work.
+See Info node `(elisp)Time Conversion' for description of a pitfall
+that can be faced during migration from the obsolescent to the new
+calling convention due to unconscious usage of nil for the DST argument.
+
usage: (encode-time TIME &rest OBSOLESCENT-ARGUMENTS) */)
(ptrdiff_t nargs, Lisp_Object *args)
{