$ 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