$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLTIME!3 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " I N 0000040 T E R L I S P " 247 P A C K A G 0000060 E " I N T E R L I S P " ) \r 006 0000100 001 ( F I L E C R E A T E D " 2 0000120 1 - O c t - 8 6 0 2 : 2 1 : 1 0000140 6 " 006 004 { E R I S } < L I S P 0000160 C O R E > S O U R C E S > C M L 0000200 T I M E . ; 3 006 001 1 5 1 0 5 0000220 \r \r c h a n g e s 0000240 t o % : ( F U N C T I O N 0000260 S % % C O N V E R T - I N T E 0000300 R N A L - T I M E - T O - C L U 0000320 T ) \r 0000340 ( V A R S C M L 0000360 T I M E C O M S ) \r \r 0000400 p r e v i o u s d a t e % : 0000420 " 5 - S e p - 8 6 1 7 : 4 0000440 1 : 2 7 " { E R I S } < L I S 0000460 P C O R E > S O U R C E S > C M 0000500 L T I M E . ; 2 ) \r \r \r ( * " 0000520 \r C o p y r i g h t ( c ) 1 0000540 9 8 6 b y X e r o x C o r 0000560 p o r a t i o n . A l l r 0000600 i g h t s r e s e r v e d . \r 0000620 " ) \r \r ( P R E T T Y C O M P R 0000640 I N T C M L T I M E C O M S ) 0000660 \r \r ( R P A Q Q 006 002 C M L T I 0000700 M E C O M S 006 001 ( ( * * " 0000720 C o m m o n L i s p T i m e 0000740 F u n c t i o n s - - S e 0000760 c t i o n 2 5 . 4 . 1 - - 0001000 B y K e l l y R o a c h e 0001020 t c . * " ) \r 0001040 ( C O 0001060 N S T A N T S ( C L : I N T E 0001100 R N A L - T I M E - U N I T S - 0001120 P E R - S E C O N D 1 0 0 0 ) 0001140 ) \r 0001160 ( F N S C L : G E 0001200 T - I N T E R N A L - R E A L - 0001220 T I M E C L : G E T - I N T E 0001240 R N A L - R U N - T I M E C L 0001260 : G E T - U N I V E R S A L - T 0001300 I M E \r 0001320 C L 0001340 : G E T - D E C O D E D - T I M 0001360 E C L : D E C O D E - U N I V 0001400 E R S A L - T I M E C L : E N 0001420 C O D E - U N I V E R S A L - T 0001440 I M E \r 0001460 C L 0001500 : S L E E P ) \r 0001520 ( D E C 0001540 L A R E % : D O N T C O P Y 0001560 E V A L @ C O M P I L E ( F U 0001600 N C T I O N S % % C O N V E R 0001620 T - I N T E R N A L - T I M E - 0001640 T O - C L U T ) ) \r 0001660 ( D 0001700 E C L A R E % : D O N T E V A 0001720 L @ L O A D D O E V A L @ C O 0001740 M P I L E D O N T C O P Y C 0001760 O M P I L E R V A R S \r 0002000 0002020 ( A D D V A R S 0002040 ( N L A M A ) \r 0002060 0002100 ( N L A M L 0002120 ) \r 0002140 0002160 ( L A M A C L : S L E 0002200 E P C L : E N C O D E - U N I 0002220 V E R S A L - T I M E C L : D 0002240 E C O D E - U N I V E R S A L - 0002260 T I M E \r 0002300 0002320 C L 0002340 : G E T - D E C O D E D - T I M 0002360 E C L : G E T - U N I V E R S 0002400 A L - T I M E \r 0002420 * 0002460 C L : G E T - I N T E R N A L 0002500 - R U N - T I M E ) ) ) ) ) \r \f 0002520 006 004 ( * * " C o m m o n L 0002540 i s p T i m e F u n c t i o 0002560 n s - - S e c t i o n 2 5 0002600 . 4 . 1 - - B y K e l l y 0002620 R o a c h e t c . * " ) 0002640 006 001 \r \r ( D E C L A R E % : E 0002660 V A L @ C O M P I L E \r \r ( R 0002700 P A Q Q 006 002 C L : I N T E R N 0002720 A L - T I M E - U N I T S - P E 0002740 R - S E C O N D 006 001 1 0 0 0 ) 0002760 \r \r ( C O N S T A N T S ( C L 0003000 : I N T E R N A L - T I M E - U 0003020 N I T S - P E R - S E C O N D 0003040 1 0 0 0 ) ) \r ) \r ( D E F I N E 0003060 Q \r \r ( 006 004 C L : G E T - I N T 0003100 E R N A L - R E A L - T I M E 006 0003120 001 \r ( L A M B D A N I L 006 0003140 006 006 001 0003160 * 0003220 006 006 ( * h d j " 1 8 - 0003240 J u l - 8 6 1 2 : 0 5 " ) 006 001 0003260 \r \r 0003300 006 006 ( * * " T h 0003320 e c u r r e n t t i m e i 0003340 s r e t u r n e d a s a 0003360 s i n g l e i n t e g e r i 0003400 n I n t e r n a l T i m e 0003420 f o r m a t . ( I n t e r n 0003440 a l T i m e f o r m a t = 0003460 t i m e i n m i l l i s e 0003500 c o n d s f o r u s . ) T 0003520 h i s t i m e i s r e l a 0003540 t i v e t o a n a r b i t 0003560 r a r y t i m e b a s e , 0003600 b u t t h e d i f f e r e n 0003620 c e b e t w e e n t h e v 0003640 a l u e s o f t w o c a l 0003660 l s t o t h i s f u n c t 0003700 i o n w i l l b e t h e 0003720 a m o u n t o f e l a p s e 0003740 d r e a l t i m e b e t w 0003760 e e n t h e t w o c a l l 0004000 s , m e a s u r e d i n t 0004020 h e u n i t s d e f i n e d 0004040 b y I N T E R N A L - T I M 0004060 E - U N I T S - P E R - S E C O 0004100 N D * " ) 006 001 \r \r ( C 0004120 L O C K 0 ) ) ) \r \r ( 006 004 C L 0004140 : G E T - I N T E R N A L - R U 0004160 N - T I M E 006 001 \r ( C L : L 0004200 A M B D A N I L 006 006 006 001 0004220 * 0004260 006 006 ( * h 0004300 d j " 1 8 - J u l - 8 6 1 2 0004320 : 0 6 " ) 006 001 \r 0004340 \r 006 006 ( 0004360 * * " T h e c u r r e n t 0004400 r u n t i m e i s r e t 0004420 u r n e d a s a s i n g l 0004440 e i n t e g e r i n I n t 0004460 e r n a l T i m e f o r m a 0004500 t . ( I n t e r n a l T i 0004520 m e f o r m a t = t i m e 0004540 i n m i l l i s e c o n d s 0004560 f o r u s . ) T h e p r 0004600 e c i s e m e a n i n g o f 0004620 t h i s q u a n t i t y i 0004640 s i m p l e m e n t a t i o n 0004660 - d e p e n d e n t ; i t 0004700 m a y m e a s u r e r e a l 0004720 t i m e , r u n t i m e , 0004740 C P U c y c l e s , o r 0004760 s o m e o t h e r q u a n t 0005000 i t y . T h e i n t e n t 0005020 i s t h a t t h e d i f 0005040 f e r e n c e b e t w e e n 0005060 t h e v a l u e s o f t w 0005100 o c a l l s t o t h i s 0005120 f u n c t i o n b e t h e 0005140 a m o u n t o f t i m e b 0005160 e t w e e n t h e t w o c 0005200 a l l s d u r i n g w h i c 0005220 h t h e c o m p u t a t i o 0005240 n a l e f f o r t w a s e 0005260 x p e n d e d o n b e h a l 0005300 f o f t h e e x e c u t i 0005320 n g p r o g r a m . " ) 006 001 \r 0005340 \r ( C L O C K 0005360 2 ) ) ) \r \r ( 006 004 C L : G E T 0005400 - U N I V E R S A L - T I M E 006 0005420 001 \r ( C L : L A M B D A N 0005440 I L 006 006 006 001 0005460 * 0005520 006 006 ( * h d j " 1 8 - 0005540 J u l - 8 6 1 2 : 0 2 " ) 006 001 0005560 \r \r 0005600 006 006 ( * * " T h 0005620 e c u r r e n t t i m e o 0005640 f d a y i s r e t u r n e 0005660 d a s a s i n g l e i n 0005700 t e g e r i n U n i v e r s 0005720 a l T i m e f o r m a t . " 0005740 ) 006 001 \r \r ( % 0005760 % C O N V E R T - I N T E R N A 0006000 L - T I M E - T O - C L U T ( 0006020 D A Y T I M E ) ) ) ) \r \r ( 006 004 0006040 C L : G E T - D E C O D E D - T 0006060 I M E 006 001 \r ( C L : L A M B 0006100 D A N I L 006 006 006 001 0006120 * 0006160 006 006 ( * h d j 0006200 " 1 8 - J u l - 8 6 1 2 : 0 8 0006220 " ) 006 001 \r \r 0006240 006 006 ( * * 0006260 " T h e c u r r e n t t i 0006300 m e i s r e t u r n e d i 0006320 n D e c o d e d T i m e f 0006340 o r m a t . N i n e v a l 0006360 u e s a r e r e t u r n e d 0006400 : S E C O N D , M I N U T E 0006420 , H O U R , D A T E , M O 0006440 N T H , Y E A R , D A Y - O 0006460 F - W E E K , D A Y L I G H T 0006500 - S A V I N G - T I M E - P , 0006520 a n d T I M E - Z O N E . " ) 0006540 006 001 \r \r ( 006 002 0006560 C L : D E C O D E - U N I V E R 0006600 S A L - T I M E 006 001 ( 006 002 C L 0006620 : G E T - U N I V E R S A L - T 0006640 I M E 006 001 ) ) ) ) \r \r ( 006 004 C L 0006660 : D E C O D E - U N I V E R S A 0006700 L - T I M E 006 001 \r ( C L : L 0006720 A M B D A ( U N I V E R S A L 0006740 - T I M E & O P T I O N A L 0006760 ( T I M E - Z O N E \ T i m e 0007000 Z o n e C o m p T I M E - Z O 0007020 N E - S U P P L I E D P ) ) 006 006 0007040 006 001 \r 0007060 * 0007140 006 006 ( * k b r % : " 7 - A 0007160 u g - 8 6 1 0 : 2 1 " ) 006 001 \r 0007200 \r 0007220 006 006 ( * * " T h e 0007240 t i m e s p e c i f i e d 0007260 b y U N I V E R S A L - T I M 0007300 E i n U n i v e r s a l T 0007320 i m e f o r m a t i s c o 0007340 n v e r t e d t o D e c o d 0007360 e d T i m e f o r m a t . 0007400 N i n e v a l u e s a r e 0007420 r e t u r n e d : S E C O N 0007440 D , M I N U T E , H O U R , 0007460 D A T E , M O N T H , Y E 0007500 A R , D A Y - O F - W E E K , 0007520 D A Y L I G H T - S A V I N G 0007540 - T I M E - P , a n d T I M 0007560 E - Z O N E . " ) 006 001 \r \r 0007600 ( P R O G ( C H E 0007620 C K D L S T I M E M O N T H 0007640 S E C H R T O T A L D A Y 0007660 S D A Y S L E A P 4 0 0 L 0007700 E A P 1 0 0 L E A P 4 Y E A 0007720 R Y D A Y W D A Y M I N 0007740 \r 0007760 D L S ) \r 0010000 \r 0010020 006 006 ( * * " P a g e 4 4 0010040 6 o f t h e s i l v e r 0010060 b o o k : I f y o u d o n 0010100 ' t s p e c i f y T I M E - 0010120 Z O N E i t d e f a u l t s 0010140 t o t h e c u r r e n t 0010160 t i m e z o n e a d j u s t 0010200 e d f o r d a y l i g h t 0010220 s a v i n g s t i m e . I 0010240 f y o u p r o v i d e T I 0010260 M E - Z O N E e x p l i c i t 0010300 l y , n o a d j u s t m e n 0010320 t f o r d a y l i g h t s 0010340 a v i n g s t i m e i s i 0010360 s p e r f o r m e d . * " 0010400 ) 006 001 \r \r 0010420 ( S E T Q C H E C K D 0010440 L S ( A N D ( N O T T I M 0010460 E - Z O N E - S U P P L I E D P 0010500 ) \r 0010520 0010540 \ D a y L i g h t S a 0010560 v i n g s ) ) \r 0010600 ( C L : M U L T I 0010620 P L E - V A L U E - S E T Q ( 0010640 T I M E S E C ) \r 0010660 0010700 ( C L : F L O O R U N I V E R 0010720 S A L - T I M E 6 0 ) ) \r 0010740 ( C L 0010760 : M U L T I P L E - V A L U E - 0011000 S E T Q ( T I M E M I N ) \r 0011020 0011040 ( C L : F L O O R 0011060 T I M E 6 0 ) ) \r 0011100 ( C L : M U L 0011120 T I P L E - V A L U E - S E T Q 0011140 ( T O T A L D A Y S H R ) \r 0011160 0011200 ( C L : F L O O R 0011220 ( - T I M E T I M E - Z O N 0011240 E ) \r 0011260 0011300 2 4 ) ) \r 0011320 D T L O O P \r 0011340 * 0011420 006 006 ( * " L E A P 4 0 0011440 0 = n u m b e r o f 4 0 0011460 0 y e a r b l o c k s t i 0011500 l l J a n 1 , 2 0 0 0 N 0011520 o t e : T h e a l g o r i t 0011540 h m s t i l l w o r k s c 0011560 o r r e c t l y f o r d a t 0011600 e s a f t e r J a n 1 , 0011620 2 0 0 0 . L E A P 4 0 0 0011640 w i l l b e n e g a t i v e 0011660 b u t n o t w r o n g . 0011700 ( A n y J a n 1 a y e 0011720 a r a m u l t i p l e o f 0011740 4 0 0 w o u l d d o n i 0011760 c e l y . J a n 1 , 2 0 0012000 0 0 j u s t h a p p e n s 0012020 t o b e c l o s e b y . ) 0012040 * " ) 006 001 \r 0012060 ( C L : M U L T I P 0012100 L E - V A L U E - S E T Q ( L 0012120 E A P 4 0 0 D A Y S ) \r 0012140 0012160 ( C L : F L O O R ( - 0012200 3 6 5 2 4 T O T A L D A Y S ) 0012220 \r 0012240 ( + 0012260 3 6 5 2 5 ( C L : * 3 3 0012300 6 5 2 4 ) ) ) ) 006 006 0012320 ( * \r 006 001 0012340 0012360 006 006 " L E A P 0012400 1 0 0 = n u m b e r o f 0012420 1 0 0 y e a r b l o c k s 0012440 t i l l t h e 4 0 0 y e a 0012460 r b l o c k s . * " ) 006 001 0012500 \r 0012520 ( C L : M U L T I P L E - V A L 0012540 U E - S E T Q ( L E A P 1 0 0 0012560 D A Y S ) \r 0012600 ( C L 0012620 : F L O O R D A Y S 3 6 5 2 0012640 4 ) ) 0012660 006 006 ( * \r 006 001 0012700 * 0012740 006 006 " L E A P 4 = n u 0012760 m b e r o f 4 y e a r b 0013000 l o c k s t i l l t h e 1 0013020 0 0 y e a r b l o c k s . 0013040 * " ) 006 001 \r 0013060 ( C L : M U L T I P 0013100 L E - V A L U E - S E T Q ( L 0013120 E A P 4 D A Y S ) \r 0013140 0013160 ( C L : F L O O R D A Y S 0013200 ( + 3 6 6 ( C L : * 3 3 0013220 6 5 ) ) ) ) 006 006 ( * " D a 0013240 t e o f a n s w e r w i l 0013260 l b e ( + ( C L : * 1 4 0013300 6 0 9 7 L E A P 4 0 0 ) ( C 0013320 L : * 3 6 5 2 4 L E A P 1 0 0013340 0 ) ( C L : * 1 4 6 1 L E 0013360 A P 4 ) D A Y S ) d a y s 0013400 b e f o r e J a n 1 , 2 0 0013420 0 0 * " ) 006 001 \r 0013440 ( S E T Q Y E 0013460 A R ( - 2 0 0 0 ( C L : * 0013500 4 0 0 L E A P 4 0 0 ) \r 0013520 0013540 ( C L : * 0013560 1 0 0 L E A P 1 0 0 ) \r 0013600 0013620 ( C L : * 0013640 4 L E A P 4 ) \r 0013660 0013700 ( C D R ( \ D T 0013720 S C A N D A Y S ' ( ( 1 0 9 0013740 6 . 4 ) \r 0013760 * 0014020 ( 7 3 1 . 0014040 3 ) \r 0014060 * 0014120 ( 3 6 6 . 2 ) \r 0014140 * 0014220 ( 1 . 1 ) \r 0014240 * 0014300 ( 0 . 0014320 0 ) ) ) ) ) ) \r 0014340 * 0014420 006 006 ( * " Y D A Y 0014440 i s t h e o r d i n a l o 0014460 f d a y a s i t w o u l 0014500 d a p p e a r i n a l e 0014520 a p y e a r . W e t h u 0014540 s h a v e J a n 1 = d 0014560 a y 0 , F e b 2 9 = d 0014600 a y 5 9 , M a r 1 = d 0014620 a y 6 0 , a n d D e c 3 0014640 1 = d a y 3 6 5 . * 0014660 " ) 006 001 \r 0014700 ( S E T Q Y D A Y ( 0014720 - ( C D R ( \ D T S C A N 0014740 D A Y S ( C O N D \r 0014760 * 0015020 ( ( 0015040 A N D ( E Q ( C L : M O D 0015060 Y E A R 1 0 0 ) \r 0015100 * 0015160 0 ) \r 0015200 * 0015260 ( N O T ( E Q ( C L : 0015300 M O D Y E A R 4 0 0 ) \r 0015320 * 0015420 0 ) ) ) \r 0015440 * 0015500 ' ( ( 1 4 0 2 0015520 . 1 4 6 0 ) \r 0015540 * 0015600 ( 0015620 1 0 9 6 . 1 4 6 1 ) \r 0015640 * 0015720 ( 1 0 3 7 . 1 0 9 5 ) 0015740 \r 0015760 * 0016020 ( 7 3 1 . 1 0 0016040 9 6 ) \r 0016060 * 0016120 ( 6 7 2 . 0016140 7 3 0 ) \r 0016160 * 0016220 ( 3 6 6 0016240 . 7 3 1 ) \r 0016260 * 0016320 ( 3 0016340 0 7 . 3 6 5 ) \r 0016360 * 0016440 ( 1 . 3 6 6 ) \r 0016460 * 0016540 ( 0 . 0 ) ) ) \r 0016560 * 0016620 ( T 0016640 ' ( ( 1 0 9 6 . 1 4 6 1 ) \r 0016660 * 0016740 ( 1 0 3 7 . 0016760 1 0 9 5 ) \r 0017000 * 0017040 ( 7 0017060 3 1 . 1 0 9 6 ) \r 0017100 * 0017160 ( 6 7 2 . 7 3 0 ) \r 0017200 * 0017260 ( 3 6 6 . 7 3 0017300 1 ) \r 0017320 * 0017360 ( 3 0 7 0017400 . 3 6 5 ) \r 0017420 * 0017460 ( 0017500 1 . 3 6 6 ) \r 0017520 * 0017600 ( 0 . 0 ) ) ) ) ) ) \r 0017620 0017640 D A Y S ) 0017660 ) \r 0017700 ( S E T Q W D A Y ( C L : 0017720 M O D T O T A L D A Y S 7 ) 0017740 ) \r 0017760 ( C O N D \r 0020000 ( ( A N D C 0020020 H E C K D L S ( S E T Q D L 0020040 S ( \ I S D S T ? Y D A Y 0020060 H R W D A Y ) ) ) \r 0020100 * 0020160 006 006 ( * " T h 0020200 i s d a t e i s d u r i n 0020220 g d a y l i g h t s a v i n 0020240 g s , s o a d d 1 h o u 0020260 r . T h i r d a r g i s 0020300 d a y o f t h e w e e k 0020320 , w h i c h w e d e t e r 0020340 m i n e b y t a k i n g d 0020360 a y s m o d 7 p l u s o 0020400 f f s e t . M o n d a y = 0020420 z e r o i n t h i s s c 0020440 h e m e . J a n 1 1 9 0 0020460 0 w a s a M o n d a y = 0 0020500 s o o f f s e t i s 0 0020520 * " ) 006 001 \r 0020540 ( C O N D \r 0020560 0020600 ( ( > ( S E T Q H 0020620 R ( C L : 1 + H R ) ) \r 0020640 0020660 2 3 ) 0020700 0020720 006 006 ( * 0020740 " o v e r f l o w e d i n t o 0020760 t h e n e x t d a y . 0021000 T h i s c a s e i s t o o 0021020 h a r d ( w e m i g h t 0021040 h a v e o v e r f l o w e d 0021060 t h e m o n t h , f o r e 0021100 x a m p l e ) , s o j u s t 0021120 g o b a c k a n d r e c 0021140 o m p u t e * " ) 006 001 \r 0021160 0021200 ( S E T Q T O T A L D 0021220 A Y S ( C L : 1 + T O T A L 0021240 D A Y S ) ) \r 0021260 ( S 0021300 E T Q H R 0 ) \r 0021320 0021340 ( S E T Q C H E C K D L S 0021360 N I L ) \r 0021400 ( G O 0021420 D T L O O P ) ) ) ) ) \r 0021440 ( S E T Q 0021460 M O N T H ( \ D T S C A N 0021500 Y D A Y ' ( ( 3 3 5 . 1 2 0021520 ) \r 0021540 0021560 ( 3 0 0021600 5 . 1 1 ) \r 0021620 * 0021660 ( 2 7 4 . 1 0 ) \r 0021700 * 0021740 ( 2 4 4 . 0021760 9 ) \r 0022000 0022020 ( 2 0022040 1 3 . 8 ) \r 0022060 * 0022120 ( 1 8 2 . 7 ) \r 0022140 * 0022200 ( 1 5 2 . 6 0022220 ) \r 0022240 0022260 ( 1 2 0022300 1 . 5 ) \r 0022320 * 0022360 ( 9 1 . 4 ) \r 0022400 * 0022440 ( 6 0 . 3 ) \r 0022460 * 0022520 ( 3 1 . 0022540 2 ) \r 0022560 0022600 ( 0 0022620 . 1 ) ) ) ) 0022640 006 006 ( * \r 006 001 0022660 0022700 006 006 " N o w r e t u 0022720 r n ( S E C O N D M I N U T 0022740 E H O U R D A Y M O N T H 0022760 Y E A R W E E K D A Y D A 0023000 Y L I G H T Z O N E ) * " ) 0023020 006 001 \r 0023040 ( R E T U R N ( C L : V A 0023060 L U E S S E C M I N H R 0023100 ( C L : 1 + ( - Y D A Y ( 0023120 C A R M O N T H ) ) ) \r 0023140 0023160 ( C D R 0023200 M O N T H ) \r 0023220 0023240 Y E A R W D A Y D 0023260 L S T I M E - Z O N E ) ) ) ) 0023300 ) \r \r ( 006 004 C L : E N C O D E - 0023320 U N I V E R S A L - T I M E 006 001 0023340 \r ( C L : L A M B D A ( S 0023360 E C O N D M I N U T E H O U 0023400 R D A T E M O N T H Y E A 0023420 R & O P T I O N A L T I M E 0023440 - Z O N E ) 006 006 006 001 \r 0023460 * 0023540 006 006 ( * r a f 0023560 " 5 - S e p - 8 6 1 7 : 4 0023600 1 " ) 006 001 \r 0023620 \r 006 006 ( * 0023640 * " T h e t i m e s p e c 0023660 i f i e d b y t h e g i v 0023700 e n c o m p o n e n t s o f 0023720 D e c o d e d T i m e f o 0023740 r m a t i s e n c o d e d 0023760 i n t o U n i v e r s a l T 0024000 i m e f o r m a t a n d r 0024020 e t u r n e d . I f y o u 0024040 d o n ' t s p e c i f y T 0024060 I M E - Z O N E , i t d e f 0024100 a u l t s t o t h e c u r 0024120 r e n t t i m e z o n e a 0024140 d j u s t e d f o r d a y l 0024160 i g h t s a v i n g t i m e 0024200 . I f y o u p r o v i d 0024220 e T I M E - Z O N E e x p l 0024240 i c i t l y , n o a d j u s 0024260 t m e n t f o r d a y l i g 0024300 h t s a v i n g t i m e i 0024320 s p e r f o r m e d . " ) 006 001 0024340 \r \r ( P R O G 0024360 ( Y D A Y D A Y S S I N C E 0024400 D A Y 0 ) \r 0024420 \r 006 006 ( * 0024440 * " F r o m p a g e s 4 4 0024460 4 a n d 4 4 5 o f t h e 0024500 s i l v e r b o o k . T 0024520 w o e x a m p l e s o f E 0024540 N C O D E - U N I V E R S A L - 0024560 T I M E u s a g e k n o w n 0024600 t o b e c o r r e c t a 0024620 n d w h i c h s h o u l d 0024640 b e r e c h e c k e d b y 0024660 a n y o n e w h o e d i t s 0024700 t h i s f u n c t i o n : 0024720 ( E N C O D E - U N I V E R S A 0024740 L - T I M E 1 0 0 1 1 0024760 1 9 0 0 0 ) = 1 ( E N 0025000 C O D E - U N I V E R S A L - T 0025020 I M E 1 0 0 1 1 1 9 0025040 7 6 0 ) = 2 3 9 8 2 9 1 2 0025060 0 1 " ) 006 001 \r 0025100 * 0025160 006 006 ( * \r 006 001 0025200 006 006 " I f 0025220 t h e Y E A R i s b e t 0025240 w e e n 0 a n d 9 9 w e 0025260 h a v e t o f i g u r e 0025300 o u t w h a t t h e ` o b 0025320 v i o u s ' y e a r i s . 0025340 * " ) 006 001 \r 0025360 ( S E T Q Y E A R 0025400 ( C L : I F ( < Y E A R 0025420 1 0 0 ) \r 0025440 0025460 ( C L : M U L T I P 0025500 L E - V A L U E - B I N D \r 0025520 * 0025560 ( S E C M I N H O U R D A 0025600 Y M O N T H N O W - Y E A R 0025620 ) \r 0025640 0025660 ( 006 002 C L : G E T - D E 0025700 C O D E D - T I M E 006 001 ) \r 0025720 * 0025760 ( 006 002 D E C L A R E 006 001 ( I G 0026000 N O R E S E C M I N H O U 0026020 R D A Y M O N T H ) ) \r 0026040 * 0026100 ( C L : D O ( ( Y ( + Y E 0026120 A R ( C L : * 1 0 0 ( C L 0026140 : 1 - ( C L : T R U N C A T E 0026160 N O W - Y E A R 1 0 0 ) ) ) 0026200 ) \r 0026220 0026240 ( 0026260 + Y 1 0 0 ) ) ) \r 0026300 * 0026340 ( ( < = ( A B S ( - 0026360 Y N O W - Y E A R ) ) \r 0026400 * 0026440 5 0 ) \r 0026460 * 0026520 Y ) ) ) \r 0026540 0026560 Y E A 0026600 R ) ) \r 0026620 ( S E T Q Y D A Y ( I 0026640 P L U S ( C O N D \r 0026660 0026700 ( 0026720 ( A N D ( I G R E A T E R P 0026740 M O N T H 2 ) \r 0026760 * 0027020 ( E Q ( I R E M A I N D 0027040 E R Y E A R 4 ) \r 0027060 * 0027120 0 ) \r 0027140 * 0027200 ( O R ( N O T ( 0027220 E Q ( I R E M A I N D E R Y 0027240 E A R 1 0 0 ) \r 0027260 * 0027340 0 ) ) \r 0027360 * 0027420 ( E Q ( I R E M A I N D E 0027440 R Y E A R 4 0 0 ) \r 0027460 * 0027520 0 ) 0027540 ) ) 006 006 ( * " A 0027560 f t e r F e b 2 8 o f a 0027600 l e a p y e a r * " ) 006 001 0027620 \r 0027640 0027660 1 ) \r 0027700 0027720 ( T 0027740 0 ) ) \r 0027760 0030000 ( S E L E C T Q M O 0030020 N T H \r 0030040 0030060 ( 1 0 ) \r 0030100 * 0030140 ( 2 3 1 ) \r 0030160 * 0030220 ( 3 5 9 ) \r 0030240 0030260 ( 4 9 0030300 0 ) \r 0030320 0030340 ( 5 1 2 0 ) \r 0030360 * 0030420 ( 6 1 5 1 ) \r 0030440 * 0030500 ( 7 1 8 1 ) \r 0030520 0030540 ( 0030560 8 2 1 2 ) \r 0030600 0030620 ( 9 2 0030640 4 3 ) \r 0030660 0030700 ( 1 0 2 7 3 0030720 ) \r 0030740 0030760 ( 1 1 3 0 4 ) \r 0031000 * 0031040 ( 1 2 3 3 4 ) \r 0031060 * 0031120 N I L ) \r 0031140 0031160 ( S U B 1 D 0031200 A T E ) ) ) \r 0031220 ( S E T Q D A Y S 0031240 S I N C E D A Y 0 ( I P L U S 0031260 Y D A Y ( I T I M E S 3 6 0031300 5 ( S E T Q Y E A R ( I D 0031320 I F F E R E N C E Y E A R 1 0031340 9 0 0 ) ) ) \r 0031360 * 0031420 ( I Q U O T I E N T ( S U B 0031440 1 Y E A R ) \r 0031460 * 0031520 4 ) ) ) \r 0031540 ( S E 0031560 T Q H O U R ( + H O U R 0031600 ( I T I M E S 2 4 D A Y S S 0031620 I N C E D A Y 0 ) \r 0031640 0031660 ( C O N D \r 0031700 0031720 ( T I 0031740 M E - Z O N E T I M E - Z O N 0031760 E ) \r 0032000 0032020 ( ( A N D \ D a y L i g 0032040 h t S a v i n g s ( \ I S D S 0032060 T ? Y D A Y H O U R ( I R 0032100 E M A I N D E R D A Y S S I N 0032120 C E D A Y 0 7 \r 0032140 * 0032240 ) ) ) \r 0032260 * 0032340 006 006 ( * 0032360 \r 006 001 0032400 006 006 " T B W : W 0032420 e e k d a y n o t T U E S D 0032440 A Y f o r 1 9 0 0 b u t 0032460 f o r 1 9 0 1 . 0 F i g u r 0032500 e o u t c o r r e c t w e 0032520 e k d a y . * " ) 006 001 \r 0032540 * 0032620 006 006 ( * 0032640 " S u b t r a c t o n e t o 0032660 g o f r o m d a y l i g h 0032700 t t o s t a n d a r d t i 0032720 m e . W e e k d a y a r g 0032740 u m e n t ( I R E M A I N D E 0032760 R D A Y S S I N C E D A Y 0 0033000 7 ) t o \ I S D S T ? i 0033020 s b a s e d o n d a y 0 0033040 = J a n 1 , 1 9 0 0 , 0033060 w h i c h w a s a M o n d 0033100 a y = 0 * " ) 006 001 \r 0033120 0033140 ( S 0033160 U B 1 \ T i m e Z o n e C o m 0033200 p ) ) \r 0033220 0033240 ( T \ T i m e Z o n e 0033260 C o m p ) ) ) ) \r 0033300 ( R E T U R N 0033320 ( I P L U S S E C O N D ( I 0033340 T I M E S 6 0 ( I P L U S 0033360 M I N U T E ( I T I M E S 6 0033400 0 H O U R ) ) ) ) ) ) ) ) \r \r 0033420 ( 006 004 C L : S L E E P 006 001 \r 0033440 ( C L : L A M B D A ( S E C O 0033460 N D S ) 006 006 006 001 0033500 0033520 006 0033540 006 ( * h d j " 1 8 - J u l - 0033560 8 6 1 2 : 1 1 " ) 006 001 \r 0033600 \r 0033620 006 006 ( * * " ( S L E E P 0033640 N ) c a u s e s e x e c u 0033660 t i o n t o c e a s e a n 0033700 d b e c o m e d o r m a n t 0033720 f o r a p p r o x i m a t e 0033740 l y N s e c o n d s o f 0033760 r e a l t i m e , w h e r e 0034000 u p o n e x e c u t i o n i 0034020 s r e s u m e d . T h e 0034040 a r g u m e n t m a y b e 0034060 a n y n o n - n e g a t i v e 0034100 n o n - c o m p l e x n u m 0034120 b e r . S L E E P r e t u 0034140 r n s N I L . " ) 006 001 \r \r 0034160 ( B L O C K ( C 0034200 L : * S E C O N D S 1 0 0 0 0034220 ) ) \r N I L ) 0034240 ) \r ) \r ( D E C L A R E % : D 0034260 O N T C O P Y E V A L @ C O M 0034300 P I L E \r ( D E F M A C R O 0034320 006 002 % % C O N V E R T - I N T E 0034340 R N A L - T I M E - T O - C L U 0034360 T 006 001 ( T I M E ) \r 0034400 \r 0034420 006 006 ( * * " c o n v e r t 0034440 s f r o m I n t e r l i s p 0034460 - D i n t e r n a l t i m e 0034500 f o r m a t t o C o m m o 0034520 n L i s p U n i v e r s a l 0034540 T i m e " ) 006 001 \r ` ( + , 0034560 T I M E ( C L : * 3 6 5 8 0034600 6 4 0 0 ) \r M A X . F 0034620 I X P 1 ) ) \r \r ) \r ( D E C L 0034640 A R E % : D O N T E V A L @ L 0034660 O A D D O E V A L @ C O M P I 0034700 L E D O N T C O P Y C O M P 0034720 I L E R V A R S \r \r ( A D D T 0034740 O V A R 006 002 N L A M A 006 001 ) 0034760 \r \r ( A D D T O V A R 006 002 N L 0035000 A M L 006 001 ) \r \r ( A D D T O V 0035020 A R 006 002 L A M A 006 001 C L : S 0035040 L E E P C L : E N C O D E - U 0035060 N I V E R S A L - T I M E C L 0035100 : D E C O D E - U N I V E R S A 0035120 L - T I M E C L : G E T - D E 0035140 C O D E D - T I M E \r 0035160 0035200 C L : G E T - U N I V E R S A 0035220 L - T I M E C L : G E T - I N 0035240 T E R N A L - R U N - T I M E ) 0035260 \r ) \r ( P U T P R O P S C M L 0035300 T I M E C O P Y R I G H T ( 0035320 " X e r o x C o r p o r a t i 0035340 o n " 1 9 8 6 ) ) \r ( D E C L 0035360 A R E % : D O N T C O P Y \r 0035400 ( F I L E M A P ( N I L ( 0035420 1 5 7 7 1 4 4 9 9 ( C L : G 0035440 E T - I N T E R N A L - R E A L 0035460 - T I M E 1 5 8 7 . 2 1 3 0035500 7 ) ( C L : G E T - I N T E R 0035520 N A L - R U N - T I M E 2 1 3 0035540 9 . \r 2 8 0 5 ) ( C L : G 0035560 E T - U N I V E R S A L - T I M 0035600 E 2 8 0 7 . 3 0 9 9 ) ( 0035620 C L : G E T - D E C O D E D - T 0035640 I M E 3 1 0 1 . 3 4 9 7 ) 0035660 ( C L : D E C O D E - U N I V 0035700 E R S A L - T I M E \r 3 4 9 9 0035720 . 9 9 2 1 ) ( C L : E N C 0035740 O D E - U N I V E R S A L - T I 0035760 M E 9 9 2 3 . 1 4 0 9 4 ) 0036000 ( C L : S L E E P 1 4 0 9 6 0036020 . 1 4 4 9 7 ) ) ) ) ) \r S T 0036040 O P \r 0036043