;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 121.57 ;;; Reason: ;;; Another time bug. "It's not my fault" ;;; Written 14-Apr-87 17:11:57 by naha at site LMI Cambridge ;;; while running on Love from band 2 ;;; with Experimental System 121.55, Experimental Lambda-Diag 15.0, Experimental ZMail 70.2, Experimental KERMIT 32.0, Experimental Unix-Interface 10.0, Experimental Local-File 72.0, Experimental FILE-Server 21.0, Experimental Tape 13.0, microcode 1733, SDU Boot Tape 3.13, SDU ROM 102, 121.35. ; From file DJ: L.IO1; TIME.LISP#137 at 14-Apr-87 17:11:58 #10R TIME#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TIME"))) (COMPILER::PATCH-SOURCE-FILE "SYS: IO1; TIME  " (DEFUN ENCODE-UNIVERSAL-TIME (SECONDS MINUTES HOURS DAY MONTH YEAR &OPTIONAL TIMEZONE &AUX TEM goodyear) "Given a time, return a universal-time encoding of it. A universal-time is the number of seconds since 1-Jan-1900 00:00-GMT (a bignum)." (IF (< YEAR 100.) (LET ((CURRENT-YEAR (NTH-VALUE 5 (GET-DECODED-TIME)))) ;; In case called during startup or during DISK-SAVE. (UNLESS CURRENT-YEAR (SETQ CURRENT-YEAR 2000.)) (SETQ YEAR (+ CURRENT-YEAR (- (MOD (+ 50. (- YEAR (CL:REM CURRENT-YEAR 100.))) 100.) 50.))))) (setq goodyear year) (SETQ YEAR (- YEAR 1900.)) (OR TIMEZONE (SETQ TIMEZONE (IF (DAYLIGHT-SAVINGS-TIME-P HOURS DAY MONTH goodyear) (1- *TIMEZONE*) *TIMEZONE*))) (SETQ TEM (+ (1- DAY) (AREF *CUMULATIVE-MONTH-DAYS-TABLE* MONTH) (FLOOR (1- YEAR) 4) (* YEAR 365.))) ;Number of days since 1-Jan-1900. (AND (> MONTH 2) (LEAP-YEAR-P goodyear) (SETQ TEM (1+ TEM))) ;After 29-Feb in a leap year. (+ SECONDS (* 60. MINUTES) (* 3600. HOURS) (* TEM (* 60. 60. 24.)) (* TIMEZONE 3600.))) ))