mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-24 13:57:36 +00:00
(difftm): Simplify expression.
This commit is contained in:
parent
9106ccf1ff
commit
8e718b4eb6
1 changed files with 15 additions and 16 deletions
|
|
@ -611,26 +611,25 @@ and from `file-attributes'.")
|
|||
|
||||
/* Yield A - B, measured in seconds. */
|
||||
static long
|
||||
difftm(a, b)
|
||||
difftm (a, b)
|
||||
struct tm *a, *b;
|
||||
{
|
||||
int ay = a->tm_year + (TM_YEAR_ORIGIN - 1);
|
||||
int by = b->tm_year + (TM_YEAR_ORIGIN - 1);
|
||||
return
|
||||
(
|
||||
(
|
||||
(
|
||||
/* difference in day of year */
|
||||
a->tm_yday - b->tm_yday
|
||||
/* + intervening leap days */
|
||||
+ ((ay >> 2) - (by >> 2))
|
||||
- (ay/100 - by/100)
|
||||
+ ((ay/100 >> 2) - (by/100 >> 2))
|
||||
/* + difference in years * 365 */
|
||||
+ (long)(ay-by) * 365
|
||||
)*24 + (a->tm_hour - b->tm_hour)
|
||||
)*60 + (a->tm_min - b->tm_min)
|
||||
)*60 + (a->tm_sec - b->tm_sec);
|
||||
/* Some compilers can't handle this as a single return statement. */
|
||||
int days = (
|
||||
/* difference in day of year */
|
||||
a->tm_yday - b->tm_yday
|
||||
/* + intervening leap days */
|
||||
+ ((ay >> 2) - (by >> 2))
|
||||
- (ay/100 - by/100)
|
||||
+ ((ay/100 >> 2) - (by/100 >> 2))
|
||||
/* + difference in years * 365 */
|
||||
+ (long)(ay-by) * 365
|
||||
);
|
||||
return (60*(60*(24*days + (a->tm_hour - b->tm_hour))
|
||||
+ (a->tm_min - b->tm_min))
|
||||
+ (a->tm_sec - b->tm_sec));
|
||||
}
|
||||
|
||||
DEFUN ("current-time-zone", Fcurrent_time_zone, Scurrent_time_zone, 0, 1, 0,
|
||||
|
|
|
|||
Loading…
Reference in a new issue