Aae+ dHH $ d H6$$ff@  d= Footnote TableFootnote*e*a. o. / - i:;,.!? `Co6/ati.IPaTOCoHeading!C's.DylanGwydiond Implementors Instantiable accessorsbytecharacterdo(rcurry(checkoentrancyeofo filestreamvfilename forceoutput getinputinputavailableelimited([universal-time]icn\[decoded-time]n(o\[seconds]\[minutes]\[hours]\[day-of-week]i\[day-of-month]3.\[month]\[year]\[timezone]get-universal-timeget-decoded-time decode-time encode-time encodable-time? format-time parse-timeas%%t%Y%y%w%T%S`%r%p%M%my%I%Hen%De%d%b%ansecondsminuteshoursmonthlayeartimezone day-of-weeke day-of-monthidaylight-savings-time? MParse-Time Directivesi\>s Directives<strptimedstrftimeo\[day-of-month]\<\\[timezone]ur!h\<"oek\da#pey-me<$lastpagenum>f*<$daynum01> <$shortmonthname> <$shortyear>g"<$monthnum>/<$daynum>/<$shortyear>h)<$daynum> <$shortmonthname> <$shortyear> -i"<$monthnum>/<$daynum>/<$shortyear>j<$monthname> <$daynum>, <$year>k"<$monthnum>/<$daynum>/<$shortyear>l <$fullfilename>%m <$filename>n <$paratext[Title]>o <$paratext[Heading]>p <$curpagenum>q <$marker1>r <$marker2>s (Continued)%Ht+ (Sheet <$tblsheetnum> of <$tblsheetcount>)uPagepage<$pagenum>dvHeading & Page <$paratext> on page<$pagenum>wSee Heading & Page%See <$paratext> on page<$pagenum>.x Table & Page7Table<$paranumonly>, <$paratext>, on page<$pagenum>eYic YZ[\]A\<^A_`aAmobAe(Wda&rna'y(o>/)$ea*hn+uye,mo-a<$a3. 0aa[TY 1. aZ>_gbacajod)w2. $|ols  een in <ex nueinearppaTaY<$>ar $pY4. aA !"#$A%&'r(y)o*$+,u-.a/0a134T5.6789:;<ols=>eenAin B<ex Cnu DeinGearHppaITaJ<$M>arN $pSYT U!Vu*dudvH$ wu H$ &d Hw xu $Hw d H$ yu H$ 6d Hw zu Hw oend <HH{u inHH UUd ar HH|u HH *UUd  l" }v l" $n22 May 97  H ~v H wn!Running H/F 2# $Hv $H  UUd  d H#*  H#* HR HR FootnoteHr7  Hr7 HzHz Single LineH'Footnote 2    HR<  HR< HH Double LineH  Double Line6H8H  Single Line;HZ  TableFootnoteϸE]G'E  ϸE]G'E ϸEwPϸEwP TableFootnoteod Hz$H  $H** *TU TU hThe Time Library UU`  Designed by the Gwydion Project QUATU ` Introduction VUU`eTime  is a library of routines for working with time and dates. Time  exports two modules: nlUU`Time xUU  iThis module contains the basic time classes, functions to convert between them, and functions to get the UU@ current time. UU`Time-IO UU` @This module contains functions for basic time input and output. UU`'  UU`1Note : The Time  library is not available on all platforms. At present, it will work only under HP/UX and Microsoft Windows. GUTU h The Time Module TaUUh! [Class] UU   zA   is a simple   representation of the number of seconds since 00:00:00 1 UU@  *January 1970, UTC. Th$UUh ra0 [Sealed Immutable Class] Pr0UU   oDecoded time is for representing absolute times in a nice human readable way. The   class <UU  twcontains the following constant slots: seconds, minutes, hours, day-of-week  (0 represents Monday, 1 represents hemHUU  gTuesday, etc.), day-of-month, month, year, daylight-savings-time?,  and timezone  (in seconds west of UTC). Keywords ouTUU  yof the same names are used to initialize these slots. A   may be incompletely specified; any of its `UU  /Uslots may be #f . An additional init-keyword is default-from: . If default-from:  is specified, any slot that lUU  |isnt specified via an init-keyword will take its value of the default-from  object. If default-from:  is not xUU@  19Wspecified, any slot not specified via an init-keyword will have a value of #f . UU   dexNote: If the timezone is specified in a ,  the functions in the time library assume that it is the UU  fcorrect timezone and ignore the daylight-savings-time?  flag. Therefore if you encode a   with the UU  datimezone representing EST and the daylight-savings-time?  flag set to #t,  it will convert the time assuming the local UU@  "timezone is EST, not  EDT. UU(  t [Type] tUU co [Type] iUU   [Type]  UU ni [Type] UU -f& [Type] UU  [Type] iniUU e  [Type] !UUH ct" [Type] -UU  19{These are all limited integers that represent the acceptable ranges for the respective slots in the   e t9UU@ edclass.  universal-time [Function]  `UU` zo4Returns the current time as a . T{UUhcoTget-decoded-time  (#key timezone ) => decoded-time [Function] T UU  htyReturns the current time as a completely specified .  The time returned is relative to the timezone S~UU . zindicated by the timezone  keyword parameter. The timezone  parameter is the number of seconds west of UTC, d decoded-time [Function] zoOUU  en~Returns the supplied   as a completely specified .  The time returned is relative [UU rto the timezone indicated by the timezone  keyword keyword paramter (in seconds west of UTC). The timezone gUU@ zo defaults to the local timezone. d UUh%eYas( , universal-time ) => decoded-time [G.F. Method] UU` & 3Equivalent to decode-time(universal-time) . UUhOencode-time (decoded-time ) => universal-time [Function] iniUU  e zReturns the supplied   as a .  Only completely specified decoded-times can be UU@ ornencoded (as determined by encodable-time? . An error is returned if the decoded-time is not encodable. UUhLencodable-time? (decoded-time ) => boolean [Function] UU  OReturns #t  if the time can be encoded. A   is encodable if all its slots are specified, except possibly rUU@  day-of-week. eEUTU `d The Time-IO Module  1UUhraformat-time [Function] e t=UU  &(stream, format-string, decoded-time) IUU@ %=> () _UU( >This is a wrapper for the C function strftime . Format-string  is a string describing the format for the output kUU@ written to stream .  UUhparse-time [Function] UU  (input-stream, control-string) d UU@  => decoded-time saUU( ! co|This function is similar to the C function strptime , but contains considerably fewer directives. (See below for etUU! eda complete list of directives) Parse-time  works by trying to match things in input-stream  up against things in the UUU!zcontrol-string . A whitespace character inside control-string  will match zero or more whitespace characters in UU!~input-stream , a control-string  directive will match as described below, and all other characters match themselves UU! fp(case sensitive). If a directive expects a number, a leading zero is optional but not required. Two consecutive UU ! .ldirectives that expect numbers must be separated by something non-numeric (such as whitespace or characters trUU! like : , - , and / ), otherwise parse-time  cant tell where the first directive should stop parsing and the UU! ffsecond one should begin. Similarly, two consecutive directives that expect words must be separated by UU@! something non-alphabetic. *UU  s)If input-stream  does not match control-string , a   will be signaled, and additional input will 6UU@ cnot be read from input-stream . An unknown control-string  directive is an error, but is not a  . -stLUU  wrCaveat : The C specification numbers days of the week differently from the Dylan Time library (C has Sunday as XUU avday 0, while Dylan uses Monday for day 0). The parse-time  and format-time  functions correctly convert dUU@ atHbetween the two conventions, but this can have unexpected consequences: zUU`"1make(, day-of-week: 0) UU`# nis not the same as t dH$ uH$ lwwYtivHw uredHw lxxZUH$ umchH$ lyy[be Hw uHw lzz\HHuuisHHl{{]CaHHuothHHl||^as l" veMol" l}}_  H vatH l~~`ons$Hvma$Hlanot$H$Hlb$H$Hlbd $H e $Ha))Hw)UU $<let stream = make(, string: 0); HUU@$& parse-time(stream, %w) RU3TU h"Parse-Time Directives HUU ( l~Control-strings consist of directives, much like format-strings from the Format  library do. Unlike the Format  TUU(  wlibrary, parse-time  directives are case sensitive. (This is mostly because minute and month start with the `UU@( Csame letter) Parse-time  supports the following directives: vUUh+%a UU . zDay of the week, as a name. Either the full name (ie, Monday ), or the three letter abbreviation (Mon ) UU@. l#may be used; case does not matter. UUh/%b UU 0 }Month of the year, as a name. Either the full name (ie, January ), or the three letter abbreviation (Jan ) UU@0 #may be used; case does not matter. letUUh3ri%d >, UU`4 Day of the month. UUh5im%D %UU`6 9Date as either %m/%d/%y  or %m-%d-%y . UUh7co%H dirUU`8 f$Hour on a 24 hour clock (ie, 0-23). liUUh9he%I at+UU`: ($Hour on a 12 hour clock (ie, 1-12). ct<UUh;it%m s iHUU`< miMonth number (1-12). YUUh=%M eUU`> PMinute (0-59). porvUUhAir%p UU`B Either AM  or PM . Case does not matter, but the AM  or PM  may not contain periods (. ). on UUhC%r .UU`D cDEquivalent to %I:M:S %p. In other words, 12-hour time with AM/PM. 0UUhG%S naUU`H l cSeconds (0-59). Unlike Cs strptime , leap-seconds and double-leap-seconds are not allowed. maUUhIes%T er.UU`J 3Equivalent to %H:%M:%S UUhMon%w UU`N %D"Weekday number, with 0 as Monday. UUhS%y ҆UU`T @Year. If less than 100, assume an implicit 19 in front of it. r $UUhUli%Y U0UU`V t'Year. Do not assume any implicit 19. locAUUh,<%% ;MUU`- HA single %  character. ^UU`*  $He0-$HlbEi!du CLeftotdv Rightdod Referenced.dvao ds,,wi$0fQ=% p-  1Heading 1Heading Rule. FirstBody. $$fSE =*$ 1Stepy Step Number S:.\tStep. anf =% 2Heading .. . ;ff2ff233@ =%H    ih  Argument. d @ =%H     hi  Body. 33+33$fB =%ul33+n Bullet Bullet SymbolB:\t. ]K$fB =% ]m Bullet2. Bullet SymbolB:\t. $$$f =*CBullet. $$$f =*CStep. ff2ff233@ =%H    h  Description. dd33@ =%H    hl   u Description2. \ff233@ =%H  u t mh:  DItem. KK@ =%$H    h  DItem2. 33 @ =%33 Endnote.\t.  @ =H    h  Verbatim. %$0fQ=%  1Heading 1Heading Rule. FirstBody. ff233@ =H    h  DItem. ff233@  =%H    h  DItem. 33 @ =%33 Endnote1.\t. ff2K33@ =%H    h  Extra Key Arg. ff2ff2 @ =%H    h  Function Body. @ =% Function Head. HHH fT=% HeadingBody. HHHfD =%  HeadingSub.  @ =%$    h  Parameter List. $$fS =*$ Step Step Number S:.\t. @ =H    h  Verbatim. f =* CellHeadingd. f =*CellBody. fT =*  TableTitleT:Table : . ff2ff233@  =%H    h  Description. St@ =*  Header. @ =*  Footer. f  =%Body. HHH fT=% HeadingBody. HHHf D =%  HeadingSub. $0fQ=%  t1Heading 1Heading Rule. FirstBody. @  =%H    h  Body. ff233@ =H    h  DItem. KK@  =%H d y  h  DItem2. @  =% Function Head. ff2ff2 @  =%H    h   Function Body.  @  =%$    h  Parameter List. @  =%H    h  Body. ! Vz=* =*  =%Argument =  Bullet Symbol@=%  =% @ =%   =% _= =Computer =%Emphasis =EquationVariables =  Step Number = Subscriptame = Superscript =% Variable _=Computer @=% Variable =%Argument =%Emphasis==S=@=Thin=Medium=%Double=Thick@= Very Thin-=- .===HHHeHHFormat A /===HHHHHFormat B?Comment!1$!" #=MEd = Black!T>WhiteddA?Reddd@Greendd ABluedB=CyandCMagentad DYellowW.Palatino.R.700 Palatino-Bold W.Times.R.400 Times-RomanW.Palatino.R.400Palatino-RomanW.Courier.R.400CourierW.Palatino.I.400Palatino-Italic W.Times.R.700 Times-BoldW.Courier.R.700 Courier-BoldW.Helvetica.R.700Helvetica-Bold7Courier Helveticat%Palatino*Times Regular Regular BoldItalicRegular  p㦱$SAvwʍ8 E8!(CjK[xOa$5S% ",E։ 3}݌Gh"=@5g]Vu[s 6(sU`