The quux-time Reference Manual

This is the quux-time Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:41:40 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 quux-time

Source

quux-time.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 quux-time/quux-time.asd

Source

quux-time.asd.

Parent Component

quux-time (system).

ASDF Systems

quux-time.


3.1.2 quux-time/pkgdcl.lisp

Source

quux-time.asd.

Parent Component

quux-time (system).

Packages

quux-time.


3.1.3 quux-time/macros.lisp

Dependency

pkgdcl.lisp (file).

Source

quux-time.asd.

Parent Component

quux-time (system).

Internals

3.1.4 quux-time/time.lisp

Dependency

macros.lisp (file).

Source

quux-time.asd.

Parent Component

quux-time (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 quux-time

Source

pkgdcl.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Standalone methods

Method: print-object ((zul zoned-time) stream)

Pretty-print a zoned-time object.

Source

time.lisp.


5.1.2 Types

Type: integer-date ()
Package

quux-time.

Source

time.lisp.

Type: integer-duration ()
Package

quux-time.

Source

time.lisp.

Type: integer-time ()
Package

quux-time.

Source

time.lisp.

Type: integer-tofd ()
Package

quux-time.

Source

time.lisp.


5.2 Internals


5.2.1 Constants

Constant: $12hours

The duration of one half-day, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $1hour

The duration of one hour, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $1minute

The duration of one minute, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $1second

The duration of one second, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $1week

The duration of one week, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $24hours

The duration of one day, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $4hours

The duration of four hours, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $days-per-february-year

An array which maps (year) –> (days in february that year)
The map starts with the first month of year ’$it-cache-first-year’ and ends with the last month of year ’$it-cache-last-year’.

Package

quux-time.

Source

time.lisp.

Constant: $days-per-month

An array mapping (month) –> (days in month)
The value for February is, of course, incorrect during leap years, hence the need for %days-per-february-year defined above.

Package

quux-time.

Source

time.lisp.

Constant: $days-until-year-month

An array which maps (year,month) –> (days preceding that year/month) where ’days’ starts at the lisp epoch.
The map starts with the first month of year ’$it-cache-first-year’ and ends with the last month of year ’$it-cache-last-year’. And, there are 13 months in a year – i.e. [0,12] are valid months, and month 0 is the same as month 1.

Package

quux-time.

Source

time.lisp.

Constant: $first-minute-of-day

The first minute of a day (i.e. 00:00, midnight), in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $fixnum-max-bit-index

The maximum amount that a fixnum can be shifted.

Package

quux-time.

Source

macros.lisp.

Constant: $it-cache-first-day

The first day (since epoch) of precomputed integer-time en-/de-coding.

Package

quux-time.

Source

time.lisp.

Constant: $it-cache-first-year

The first year of precomputed integer-time en-/de-coding

Package

quux-time.

Source

time.lisp.

Constant: $it-cache-last-day

The last day (since epoch) of precomputed integer-time en-/de-coding.

Package

quux-time.

Source

time.lisp.

Constant: $it-cache-last-year

The last year of precomputed integer-time en-/de-coding

Package

quux-time.

Source

time.lisp.

Constant: $largest-tz-offset

The largest possible timezone offset, in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $last-minute-of-day

The last minute of a day (i.e. 23:59), in integer-time.

Package

quux-time.

Source

time.lisp.

Constant: $lowercase-days
Package

quux-time.

Source

time.lisp.

Constant: $lowercase-days-long
Package

quux-time.

Source

time.lisp.

Constant: $lowercase-days-ws
Package

quux-time.

Source

time.lisp.

Constant: $lowercase-months
Package

quux-time.

Source

time.lisp.

Constant: $lowercase-months-long
Package

quux-time.

Source

time.lisp.

Constant: $mixedcase-days
Package

quux-time.

Source

time.lisp.

Constant: $mixedcase-days-long
Package

quux-time.

Source

time.lisp.

Constant: $mixedcase-days-ws
Package

quux-time.

Source

time.lisp.

Constant: $mixedcase-months
Package

quux-time.

Source

time.lisp.

Constant: $mixedcase-months-long
Package

quux-time.

Source

time.lisp.

Constant: $time-in-distant-future

A time in the distant future.

Package

quux-time.

Source

time.lisp.

Constant: $time-in-distant-past

A time in the distant past.

Package

quux-time.

Source

time.lisp.

Constant: $uppercase-days
Package

quux-time.

Source

time.lisp.

Constant: $uppercase-days-long
Package

quux-time.

Source

time.lisp.

Constant: $uppercase-days-ws
Package

quux-time.

Source

time.lisp.

Constant: $uppercase-months
Package

quux-time.

Source

time.lisp.

Constant: $uppercase-months-long
Package

quux-time.

Source

time.lisp.

Constant: +400-years-of-seconds+

The number of seconds in four hundred years

Package

quux-time.

Source

time.lisp.


5.2.2 Special variables

Special Variable: $day-from-days

An array which maps (days since epoch) –> (day-of-month) where day-of-month is in the range [1,N].
The zeroth entry in the array is for $it-cache-first-day, the last entry is for $it-cache-last-day.

Package

quux-time.

Source

time.lisp.

Special Variable: $days-until-month

An array mapping (month) –> (days before beginning of month) The value for months after February is, of course, incorrect during leap years.

Package

quux-time.

Source

time.lisp.

Special Variable: $dofw-from-days

An array which maps (days since epoch) –> (day-of-week) where day-of-week is in the range [0,6] for [mon,sun]. The zeroth entry in the array is for $it-cache-first-day, the last entry is for $it-cache-last-day.

Package

quux-time.

Source

time.lisp.

Special Variable: $month-from-days

An array which maps (days since epoch) –> (month-of-year), where month-of-year is in the range [1,12].
The zeroth entry in the array is for $it-cache-first-day, the last entry is for $it-cache-last-day.

Package

quux-time.

Source

time.lisp.

Special Variable: $year-from-days

An array which maps (days since epoch) –> (year)
The zeroth entry in the array is for $it-cache-first-day, the last entry is for $it-cache-last-day.

Package

quux-time.

Source

time.lisp.

Special Variable: *current-time-function*
Package

quux-time.

Source

time.lisp.

Special Variable: *unpadded-integer-strings*

A 1000-element vector of the printed representation of each integer without any padding.

Package

quux-time.

Source

macros.lisp.

Special Variable: *zero-padded-integer-strings-2*

A 100-element vector of the printed representation of each integer zero-padded to two characters.

Package

quux-time.

Source

macros.lisp.

Special Variable: *zero-padded-integer-strings-4*

A 10000-element vector of the printed representation of each integer zero-padded to two characters.

Package

quux-time.

Source

macros.lisp.


5.2.3 Macros

Macro: check-types (&rest clauses)

Each clause looks like (type form1 form2 ..).
For each clause, assert that all the forms are of that type. Example: (check-types (integer x y) (string z) ...).

Package

quux-time.

Source

macros.lisp.

Macro: defconstant-eql (symbol expr &optional doc)
Package

quux-time.

Source

macros.lisp.

Macro: defconstant-equal (symbol expr &optional doc)
Package

quux-time.

Source

macros.lisp.

Macro: defconstant-equalp (symbol expr &optional doc)
Package

quux-time.

Source

macros.lisp.

Macro: defconstant-eqx (symbol expr eqx &optional doc)
Package

quux-time.

Source

macros.lisp.

Macro: defconstant-unequal (symbol expr &optional doc)
Package

quux-time.

Source

macros.lisp.

Macro: defun-inline (name arglist &body body)
Package

quux-time.

Source

macros.lisp.

Macro: i* (&rest fixnums)

A version of the * function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i+ (&rest fixnums)

A version of the + function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i- (number &rest fixnums)

A version of the - function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i/ (x y)

A version of the / function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i/= (&rest fixnums)

A version of the /= function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i1+ (x)

A version of the 1+ function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i1- (x)

A version of the 1- function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i< (&rest fixnums)

A version of the < function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i<= (&rest fixnums)

A version of the <= function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i= (&rest fixnums)

A version of the = function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i> (&rest fixnums)

A version of the > function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: i>= (&rest fixnums)

A version of the >= function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: iash (value count)

A version of the ash function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: iceiling (x y)

A version of the ceiling function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: iceiling+ (x y)

A version of the ceiling+ function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: idecf (place &optional delta)

Set place to - of place and argument, for fixnums only.

Package

quux-time.

Source

macros.lisp.

Macro: idpb (newvalue bytespec value)

A version of the dpb function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ifloor (x y)

A version of the floor function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ifloor+ (x y)

A version of the floor+ function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: iincf (place &optional delta)

Set place to + of place and argument, for fixnums only.

Package

quux-time.

Source

macros.lisp.

Macro: ildb (bytespec value)

A version of the ldb function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogand (&rest fixnums)

A version of the logand function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogandc2 (x y)

A version of the logandc2 function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogbitp (index integer)

A version of the logbitp function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogcount (number)

A version of the logcount function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogeqv (&rest fixnums)

A version of the logeqv function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogior (&rest fixnums)

A version of the logior function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilognot (x)

A version of the lognot function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogtest (x y)

A version of the logtest function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: ilogxor (&rest fixnums)

A version of the logxor function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: imax (number &rest fixnums)

A version of the max function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: imaxf (place x &rest xs)

Set place to max of place and argument, for fixnums only.

Package

quux-time.

Source

macros.lisp.

Macro: imin (number &rest fixnums)

A version of the min function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: iminf (place x &rest xs)

Set place to min of place and argument, for fixnums only.

Package

quux-time.

Source

macros.lisp.

Macro: iminusp (x)

A version of the minusp function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: imod (x y)

A version of the mod function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: iplusp (x)

A version of the plusp function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: irem (x y)

A version of the rem function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: itruncate (x y)

A version of the truncate function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: izerop (x)

A version of the zerop function that can only be used on fixnums.

Package

quux-time.

Source

macros.lisp.

Macro: maxf (place x &rest xs)

Set place to max of place and argument.

Package

quux-time.

Source

macros.lisp.

Macro: minf (place x &rest xs)

Set place to min of place and argument.

Package

quux-time.

Source

macros.lisp.

Macro: multiple-value-let (decls &body body)

MULTIPLE-VALUE-LET ({(Varlist [Multiple-Value]) | (Var [Value]) | Var}*) Declaration* Form* During evaluation of the Forms, Bind the Vars to the result of evaluating the
Value forms. If a list of variables is given, they are bound to each of the
VALUES returned by the expression, in order. The variables are bound in
parallel after all of the Values are evaluated.

Package

quux-time.

Source

macros.lisp.

Macro: multiple-value-let* ((decl &rest decls) &body body)

MULTIPLE-VALUE-LET* ({(Varlist [Multiple-Value]) | (Var [Value]) | Var}*) Declaration* Form* During evaluation of the Forms, Bind the Vars to the result of evaluating the
Value forms. If a list of variables is given, they are bound to each of the
VALUES returned by the expression, in order. The variables are bound in
series, so any declaration may refer to any earlier one.

Package

quux-time.

Source

macros.lisp.

Macro: with-current-integer-time-fixed ((integer-time) &body body)
Package

quux-time.

Source

time.lisp.

Macro: with-current-time-cached ((&optional override-time-utc) &body body)

Create a scope which caches/freezes the current UTC time.

This scope caches the result of (current-time-utc). Evaluations of (current-time-utc) within the scope will return the cached value. If the optional ’override-time-utc’ is provided, then the scope will cache that value instead.

Package

quux-time.

Source

time.lisp.

Macro: with-current-time-fixed ((second minute hour day month year) &body body)
Package

quux-time.

Source

time.lisp.

Macro: with-current-time-function ((new-time-function &key allow-nesting?) &body body)

Create a scope in which the current time is generated by a function.

Within this scope, evaluations of (current-time-utc) will report the
time as generated by ’new-time-function’, instead of the time as
reported by the operating system.

For example, to create a scope where time runs 5x faster than normal: (with-current-time-function ((time-speeder-upper 5))
(process-sleep 1)
(current-time-utc)) ; This returns a time 4s in the future

These scopes may be nested. Nesting is disabled by default, since you’re probably shooting yourself in the foot by it.

The inner-most function is first executed; if it refers to (current-time-utc), which (time-speeder-upper) does, then the function in the outer scope will provide that value. E.g. nesting two (tims-speeder-upper)s will have the effect of speeding time by the product of their rates.

Package

quux-time.

Source

time.lisp.

Macro: with-gensyms ((&rest bindings) &body body)

BINDINGS is a list of clauses. The canonical clause looks like (VARIABLE PREFIX) where VARIABLE is a Lisp variable, and PREFIX is a string (or anything acceptable to the STRING) function. Each VARIABLE is bound to a gensym, made with the PREFIX, and the body is run inside those bindings. A clause of the form (VARIABLE) or VARIABLE is treated as (VARIABLE VARIABLE). This is available at compile-time, so macro bodies can use it.

Package

quux-time.

Source

macros.lisp.

Macro: with-virtual-sleep ((&key days hours mins secs) &body body)
Package

quux-time.

Source

time.lisp.

Macro: without-current-time-cached (&body body)

DEPRECATED; use ’without-current-time-trickery’ instead.

Package

quux-time.

Source

time.lisp.

Macro: without-current-time-trickery (&body body)

Create a scope that undoes any of the current-time caches/functions.

Package

quux-time.

Source

time.lisp.


5.2.4 Ordinary functions

Function: %days-per-february-year (year)

Return the number of days in February of the given year For example: 1900 –> 28 days.

Package

quux-time.

Source

time.lisp.

Function: %days-until-month (month year)

Return the number of days preceding the given month in the given year. For example: March, 2004 –> (3 2004) –> 60 days

Package

quux-time.

Source

time.lisp.

Function: %days-until-year-month (year month)

Return the number of days since the lisp epoch which precede the given (year, month). For example: (1900 2) –> 31 days.

Package

quux-time.

Source

time.lisp.

Function: %defconstant-eqx-value (symbol expr eqx)
Package

quux-time.

Source

macros.lisp.

Function: %show-all-new-time-formats (time)
Package

quux-time.

Source

time.lisp.

Function: %year-from-2digit-year (2digit-year)

Convert an ambiguous 2-digit year into an unambiguous 4+-digit year.

Years before ’70 are assumed to be in the 2000’s.
’70 and later are assumed to be in the 1900’s.
This function doesn’t check that input *is* a 2-digit year.

Package

quux-time.

Source

time.lisp.

Function: advance-local-time (time &key seconds minutes hours days)
Package

quux-time.

Source

time.lisp.

Function: advance-to-next-day-of-week (time weekday &key keep-tofd-p)

Return the time corresponding to the next WEEKDAY calculated from TIME. WEEKDAY is an integer with 0 corresponding to Monday, 6 to Sunday. KEEP-TOFD-P, if non-NIL, indicates that the time portion of TIME should be carried over to the generated time. By default, 0:00h is returned for the time potions. Returns a timezone agnostic universal time.

Package

quux-time.

Source

time.lisp.

Function: ascii-digit-p (ch)

If the character is an ASCII digit, return the value of the digit.

Package

quux-time.

Source

macros.lisp.

Function: ascii-letter-p (ch)

Return true if the character is an ASCII alphabetic character.

Package

quux-time.

Source

macros.lisp.

Function: compute-date-change (time1-zul time2-zul)

If TIME1-ZUL and TIME2-ZUL are on the same date, return nil, otherwise return the days between the two. See LOCAL-DATE-OFFSET for an explanation of the value returned.

Package

quux-time.

Source

time.lisp.

Function: current-time-utc ()

Return the ’current’ UTC time (as an integer-time).

The ’current’ time may have been cached by ’with-current-time-cached’, or it may be skewed by ’with-current-time-function’.

Package

quux-time.

Source

time.lisp.

Function: current-time-utc-db-override ()
Package

quux-time.

Source

time.lisp.

Function: current-time-zoned ()

Return the ’current’ UTC time (as a zoned time).

The ’current’ time may have been cached by ’with-current-time-cached’, or it may be skewed by ’with-current-time-function’.

Package

quux-time.

Source

time.lisp.

Function: date-change-indicator (time1-zul time2-zul)

Return a “date change” indicator that describes how many days are between TIME1-ZUL and TIME2-ZUL. If they are on the same date, " " is returned, otherwise it will be a string consisting of a #+ or a #- if TIME1-ZUL is before or after TIME2-ZUL and the number of days between the two.

Package

quux-time.

Source

time.lisp.

Function: day-of-year (time)

Extract the 1-based day-of-year from an integer-time. E.g. January 1 (of any year) –> 1

’time’ is an integer-time.
Result is an integer in the range [1,366].

Package

quux-time.

Source

time.lisp.

Function: days-per-month (month year)

Return the number of days in a given month in a given year.

’month’ is in the range [1,12] (where 1 == January).
’year’ is the year – which only affects the result for February.

Package

quux-time.

Source

time.lisp.

Function: decode-integer-date (date)

Decode an integer-time into only its broken-down date components.

Input is an integer-time.
Result is the values <day> <month> <year> <dofw>.
This function is equivalent to (decode-universal-time ... 0), but is precomputed and thus faster for years in the range [$it-cache-first-year,$it-cache-last-year].

Package

quux-time.

Source

time.lisp.

Function: decode-integer-time (time)

Decode an integer-time into its broken-down components.

Input is an integer-time.
Result is the values
<seconds> <minutes> <hours> <day> <month> <year> <dofw>. This function is equivalent to (decode-universal-time ... 0), but is precomputed and thus faster for years in the range [$it-cache-first-year,$it-cache-last-year].

Package

quux-time.

Source

time.lisp.

Function: decode-integer-tofd (tofd)

Decode an integer-time into only its broken-down time-of-day components.

Input is an integer-time.
Result is the values <seconds> <minutes> <hours>.
This function is equivalent to (decode-universal-time ... 0),
but is precomputed and thus faster for years in the range [$it-cache-first-year,$it-cache-last-year].

Package

quux-time.

Source

time.lisp.

Function: decode-universal-time (universal-time &optional time-zone)

Extend to decode negative numbers.

Package

quux-time.

Source

time.lisp.

Function: dofw-name (dofw &key size case)

Return a string containing the English name of a numeric day-of-week.

’dofw’ belongs to the range [0,6] (0==Monday).
’size’ is one of :short (default) or :long, specifying size of name. ’case’ is one of :upper (default), :mixed or :lower.
Return value is a string, or NIL if the dofw is not in [0,6].

Package

quux-time.

Source

time.lisp.

Function: encode-integer-date (day month year)

Encode a broken-down date specification into integer-time. Input is the day, month, and year.
Result is an integer-time (seconds since lisp epoch).

This function is equivalent to (encode-integer-time 0 0 0 ...), but can be 3x as fast.

Package

quux-time.

Source

time.lisp.

Function: encode-integer-time (seconds minutes hours day month year)

Encode a broken-down time specification into integer-time. Input is the seconds, minutes, hours, day, month, and year. Result is an integer-time (seconds since lisp epoch).

This function is equivalent to (encode-univeral-time ... 0), but is precomputed and thus faster for years in the range [$it-cache-first-year,$it-cache-last-year].

Package

quux-time.

Source

time.lisp.

Function: encode-integer-tofd (seconds minutes hours)

Encode a broken-down time-of-day specification into integer-time. Input is the seconds, minutes, and hours.
Result is an integer-tofd (seconds since midnight).

This function is equivalent to (encode-integer-time ... 0 0 0), but is 7.5x as fast and does almost no consing (since a tofd always fits in a fixnum.

Package

quux-time.

Source

time.lisp.

Function: encode-universal-time (second minute hour date month year &optional time-zone)

Extend to return negative values for years < 1900. Drop CL guessing behavior for years 0-99.

Package

quux-time.

Source

time.lisp.

Function: explode-iso8601 (string &key start end)

Convert an ISO-8601 date+tofd string into its numerical components. ’string’ may have one of these syntaxes:

YYYY-MM-DDThh:mm[:ss[.ffff...]]Z YYYY-MM-DDThh:mm[:ss[.ffff...]]Saa[:bb] YYYY-MM-DDThh:mm[:ss[.ffff...]]

where: YYYY = year
MM = month
DD = day/date
T = literal ’T’
hh = hour
mm = minute
ss = second
fff.. = fractional seconds
Z = literal ’Z’, meaning a UTC time
S = timezone offset sign: either ’-’ or ’+’
aa = timezone offset hour
bb = timezone offset minute

The return values are the components:
<seconds> [optional]
<minutes> <hours> [required]
<day> <month> <year> [required]
<tz-offset minutes> <tz-offset hours> <tz-offset sign> [optional] <seconds fraction> [optional]

All values are integers, except for <seconds fraction> (a rational), or missing optional values (NIL).

<tz-offset sign> is zero iff the timestring is in the UTC ’Z’ form; if any timezone is specified (even 00:00), it will be +1 or -1. <tz-offset minutes/hours> are zero if <tz-offset sign> is zero. All tz-offset values are NIL if timezone fields are not supplied.

If parsing fails, all NILs are returned.

Package

quux-time.

Source

time.lisp.

Function: explode-iso8601-date (string &key start end)

Convert an ISO-8601 date string into its numerical components. ’string’ may have one of precisely must be YYYY-MM-DD syntax. Return values are:
<day> <month> <year>
If parsing fails, all NILs are returned.

Package

quux-time.

Source

time.lisp.

Function: explode-iso8601-tofd (string &key start end)

Convert an ISO-8601 tofd string into its numerical components. ’string’ may have one of these syntaxes:

hh:mm[:ss[.ffff...]]Z
hh:mm[:ss[.ffff...]]Saa[:bb]
hh:mm[:ss[.ffff...]]

where: hh = hour
mm = minute
ss = second
fff.. = fractional seconds
Z = literal ’Z’, meaning a UTC time
S = timezone offset sign: either ’-’ or ’+’
aa = timezone offset hour
bb = timezone offset minute

The return values are the components:
<seconds> [optional]
<minutes> <hours> [required]
<tz-offset minutes> <tz-offset hours> <tz-offset sign> [optional] <seconds fraction> [optional]

All values are integers, except for <seconds fraction> (a rational), or missing optional values (NIL).

<tz-offset sign> is zero iff the timestring is in the UTC ’Z’ form; if any timezone is specified (even 00:00), it will be +1 or -1. <tz-offset minutes/hours> are zero if <tz-offset sign> is zero. All tz-offset values are NIL if timezone fields are not supplied.

If parsing fails, all NILs are returned.

Package

quux-time.

Source

time.lisp.

Function: explode-local-time (string &key start end default-year)

Explode a string into (local) date and tofd components.
Valid input formats are (maybe?):

[D]D-MTH[-YY[YY]]
[D]D-MM-YYYY
[D]D[-]M[M][-]YYYY
YYYY-MM-D[D]
YYYY[-]M[M][-]D[D]
DDMMYY

MM-YY - day is set to last day of month
MM-YYYY - day is set to last day of month

Return values are: <seconds> <minutes> <hours> <day> <month> <year>. ’year’ may be NIL if no year was supplied.

Package

quux-time.

Source

time.lisp.

Function: explode-local-tofd (string &key start end)

Parse a string (or substring) as a local time-of-day. Valid formats are: HHMM HHMMSS
H..H:MM H..H:MM:SS
Returns multiple-values: <seconds> <minutes> <hours>

Package

quux-time.

Source

time.lisp.

Function: first-minute-of-local-date (time)

Return the integer-time representing the first minute on the given date.

Package

quux-time.

Source

time.lisp.

Function: get-local-time (time)
Package

quux-time.

Source

time.lisp.

Function: ilogbit-set (integer index)

Given a fixnum and an index, return the fixnum with the index’ed bit set to one.

Package

quux-time.

Source

macros.lisp.

Function: ilogbit-unset (integer index)

Given a fixnum and an index, return the fixnum with the index’ed bit set to zero.

Package

quux-time.

Source

macros.lisp.

Function: ilogsubsetp (n1 n2)

Given two fixnums, return true if the bits set in n1 are a subset of the bits set in n2.

Package

quux-time.

Source

macros.lisp.

Function: integer-number-of-digits (i)

Return the number of digits in the printed representation of I, which must be a non-negative integer.

Package

quux-time.

Source

macros.lisp.

Function: itus-to-ms (itus)
Package

quux-time.

Source

time.lisp.

Function: itus-to-us (itus)
Package

quux-time.

Source

time.lisp.

Function: last-minute-of-local-date (time)

Return the integer-time representing the last minute on the given date.

Package

quux-time.

Source

time.lisp.

Function: local-date-equal (date1 date2)

Return T if ’date1’ and ’date2’ have equal day, month, and year.

’date1’ and ’date2’ are integer-time’s.

Package

quux-time.

Source

time.lisp.

Function: local-date-long-dofw-name (time &key case)

Return a string with the full English name of the day-of-week.

Package

quux-time.

Source

time.lisp.

Function: local-date-offset (time1 time2)

Return the (integer) difference in _date_ between two local times.

This is essentially the difference in ’printed days’, not the difference in ’24-hour periods’.
For example, ’2005-03-05 23:00’ and ’2005-03-06 01:00’ will yield a 1 day difference in date, even though they are only 2 hours apart.

’time1’ and ’time2’ are local ’integer-times’.
The result is positive if time2 is later than time1.

Package

quux-time.

Source

time.lisp.

Function: local-date-only (time)

Zero the time bits of a integer-time, leaving the date bits alone.

Package

quux-time.

Source

time.lisp.

Function: local-date-to-iso8601-string (date)

Return the given local integer-date DATE as a string formatted as YYYY-MM-DDD.

Package

quux-time.

Source

time.lisp.

Function: local-date-to-string (date &optional format)

Return the given local integer-date DATE as string. FORMAT specifies how the date should be formatted.

The following keywords are accepted for FORMAT:

:DATE-ONLY -> DDMTHYYY
:BRIEF -> DD-MTH-YYYY HH:MM
any of (:DDMTH :DDMTHYY :DDMTHYYYY :DD-MTH-YYYY :DDMMYY
:MMDDYY :DDMMYYYY :MMDDYYYY :YYYYMMDD :YYYYMM :YYMMDD :YYYY-MM-DD) -> whatever WRITE-LOCAL-DATE produces for that format specification. For all other values of FORMAT, YYYY-MM-DD HH:MM:SS is produced.

Package

quux-time.

Source

time.lisp.

Function: local-date-to-string-format (date format)

Return the given local integer-date DATE as formatted string according to the FORMAT, SHOW-WEEKDAY and USE-UPPERCASE arguments as expected by WRITE-EXPLODED-DATE.

Package

quux-time.

Source

time.lisp.

Function: local-date-to-utc (local-date local-tofd tzoffset)

Convert the given LOCAL-DATE/LOCAL-TOFD to UTC and return the date part. For example: 1-MAR 23:00 EST -> 2-MAR

Package

quux-time.

Source

time.lisp.

Function: local-time-to-utc (time-local tzoffset)

Given a local integer-time and a TZ offset, return the UTC integer-time.

Package

quux-time.

Source

time.lisp.

Function: local-tofd-only (time)

Zero the date bits of a integer-time, leaving the tofd bits alone.

Package

quux-time.

Source

time.lisp.

Function: local-tofd-to-string (tofd &optional format)

Return the given time of day TOFD as string. FORMAT may be specified to control the format produced by WRITE-LOCAL-TOFD, it defaults to :HH-MM.

Package

quux-time.

Source

time.lisp.

Function: lower-case-ascii-letter-p (ch)

Return true if the character is an ASCII lowercase character.

Package

quux-time.

Source

macros.lisp.

Function: make-zoned-time (&key utc local tzoffset)
Package

quux-time.

Source

time.lisp.

Function: merge-date-and-tofd (date tofd)

Merge a ’date’ with a ’tofd’.

Take the date components of ’date’ (an integer-time)
and merge them with the time components of ’tofd’ (another integer-time), generating a new integer-time.

(’date’ and ’time’ should be local to the same TZ, although the result is effectively in the same relative TZ as ’tofd’.)

Package

quux-time.

Source

time.lisp.

Function: merge-date-and-tofd-zoned (date zul &optional local-date-offset)

Combines an integer-date and a the time portion of a zoned-time, and optionally a day offset for the local-date.

Package

quux-time.

Source

time.lisp.

Function: month-name (month &key size case)

Return a string containing the English name of a numeric month.

’month’ belongs to the range [1,12] (1==January).
’size’ is one of :short (default) or :long, specifying size of name. ’case’ is one of :upper (default), :mixed or :lower.
Return value is a string, or NIL if the month is not in [1,12].

Package

quux-time.

Source

time.lisp.

Function: override-local-time (time &key seconds minutes hours day month year)

Override specific date/tofd components of an integer-time.

Returns the new integer-time constructed by replacing the specified components of the original integer-time ’time’.

Package

quux-time.

Source

time.lisp.

Function: pad-string-to-width (str width pad-char)

Pad the string on the left until it is as long as width. If it is already longer than that, signal an exception.

Package

quux-time.

Source

macros.lisp.

Function: parse-duration (string &key start end)

Convert the duration ’string’ to a number of seconds. ’string’ may take one of the following forms:
HH:MM HH:MM:SS HHMM HHMMSS
+HH:MM +HH:MM:SS +HHMM +HHMMSS
-HH:MM -HH:MM:SS -HHMM -HHMMSS
The sign of the result reflects the sign of the duration.

Package

quux-time.

Source

time.lisp.

Function: parse-iso8601-date (string &key start end)

Convert an ISO-8601 date (sub)string into an integer-date. Must be in YYYY-MM-DD syntax.
If parsing fails, NIL is returned.

Package

quux-time.

Source

time.lisp.

Function: parse-iso8601-local (string &key start end)

Convert an ISO-8601 date+tofd (sub)string into an integer-time. (For allowed syntaxes, see ’explode-iso8601’.)
Any fractional seconds are truncated.
Any time zone specification is ignored.
If parsing fails, NIL is returned.

Package

quux-time.

Source

time.lisp.

Function: parse-iso8601-tofd-zoned (string &key start end)

Convert an ISO-8601 tofd (sub)string into a zoned-time. (For allowed syntaxes, see ’explode-iso8601-tofd’.) Any fractional seconds are truncated.
If parsing fails, NIL is returned.

Package

quux-time.

Source

time.lisp.

Function: parse-iso8601-utc (string &key start end)

Convert an ISO-8601 date+tofd (sub)string into a UTC integer-time. (For allowed syntaxes, see ’explode-iso8601’.)
Any fractional seconds are truncated.
If parsing fails, NIL is returned.

Package

quux-time.

Source

time.lisp.

Function: parse-iso8601-zoned (string &key start end)

Convert an ISO-8601 date+tofd (sub)string into a zoned-time. (The allowed syntax is YYYY-MM-DDThh:mm[:ss[.ffff...]]Saa:bb; see ’explode-iso8601’ for an explanation.)
Any fractional seconds are truncated.
If parsing fails, NIL is returned.

Package

quux-time.

Source

time.lisp.

Function: parse-local-date (string &key start end guess-year guess-year-offset guess-century)

Parse a (sub)string as a local date, neglecting tofd components.

STRING is the time string to parse.

START and END are optional bounds.

GUESS-YEAR specifies how the year should be inferred if it is
missing from STRING. The options for GUESS-YEAR are:

a number - The given number is used when STRING does not specify a year.
:utc-future - Choose the year such that the time is in the
future, relative to the current printed UTC
time. [default]
:utc-current - Use the year from the current printed UTC time.
NIL - Return NIL if no year is specified.
:utc-past - Choose the year such that the time is in the
past, relative to the current printed UTC time.

GUESS-YEAR-OFFSET specifies an offset (in seconds) which is added
to the current UTC time before inferring the year for a yearless STRING. It is applicable only when GUESS-YEAR is :UTC-FUTURE or :UTC-PAST. GUESS-YEAR-OFFSET defaults to zero.

GUESS-CENTURY specifies how the year should be interpreted if
it is specified as (exactly) two digits. The options are:

:utc-nearest - Choose a date within 50 years of the current UTC date. :utc-past - Choose the latest century giving a past UTC date. :utc-future - Choose the earliest century not giving a past UTC date. :unix-y2k - Calls %year-from-2digit-year, resulting in a year
in the range 1970 to 2069 [default].

The function returns a local date represented as an integer-time, or NIL.

Package

quux-time.

Source

time.lisp.

Function: parse-local-time (string &key start end guess-year guess-year-offset guess-century)

Parse a (sub)string as a local time (date+tofd).

STRING is the time string to parse.

START and END are optional bounds.

GUESS-YEAR specifies how the year should be inferred if it is
missing from STRING. The options for GUESS-YEAR are:

A number - The given number is used when STRING does not specify a year.
:utc-future - Choose the year such that the time is in the future (or same date), relative to the current printed UTC date. [default]
:utc-current - Use the year from the current printed UTC date.
NIL - Return NIL if no year is specified.
:utc-past - Choose the year such that the time is in the past (or same date), relative to the current printed UTC date.

GUESS-YEAR-OFFSET specifies an offset (in seconds) which is added
to the current UTC time before inferring the year for a yearless
STRING. It is applicable only when GUESS-YEAR is :UTC-FUTURE or
:UTC-PAST. GUESS-YEAR-OFFSET defaults to zero.

GUESS-CENTURY specifies how the year should be interpreted if
it is specified as (exactly) two digits. The options are:

:utc-nearest - Choose a date within 50 years of the current UTC date.
:utc-past - Choose the latest century giving a past UTC date.
:utc-future - Choose the earliest century not giving a past UTC date.
:unix-y2k - Calls %year-from-2digit-year, resulting in a year
in the range 1970 to 2069 [default].

The function returns a local datetime as an integer-time, or NIL.

Package

quux-time.

Source

time.lisp.

Function: parse-local-tofd (string &key start end)

Parse a string (or substring) as a local tofd.
Valid formats are: HHMM HHMMSS
HH:MM HH:MM:SS
Returns the number of seconds since (local) midnight.

Package

quux-time.

Source

time.lisp.

Function: parse-right-trimming-whitespace (parser type string &rest keys &key end &allow-other-keys)
Package

quux-time.

Source

macros.lisp.

Function: roll-time (time &key seconds minutes hours days months years)

Return an integer-time before/after TIME by SECONDS, MINUTES, HOURS, DAYS, MONTHS or YEARS.

TIME - an integer-time (number of seconds since epoch).

SECONDS, MINUTES, HOURS, DAYS, MONTHS, YEARS - integers.

ROLL-TIME operates by adding/subtracting SECONDS, MINUTES, HOURS, DAYS, MONTHS and YEARS (in that order) to the facsimile time TIME. ROLL-TIME treats TIME simply as the number of seconds since epoch ignoring DST, time zones and anything else which isn’t passed as an argument to ‘encode-integer-time’.

Notes:

1) The length of months, expressed as a number of days, varies. Therefore it does not always hold that:

(= x (roll-time (roll-time x :months M :years Y)
:months -M :years -Y))

2) If the result of rolling, even in an interedmiate step, ends up before 1900-01-01T00:00:00 we lose. Example:

(roll-time (encode-universal-time 0 0 0 1 1 1900)
:days -31 :months 3)
==> ERROR

Package

quux-time.

Source

time.lisp.

Function: round-time-to-next-minute (time)

Round up an integer-time to the nearest larger minute.

Returns an integer number of minutes, which, when multiplied by $1minute, will be 0-60 greater than the input.

Package

quux-time.

Source

time.lisp.

Function: server-system-time-utc ()

Return the server’s true UTC system time (as an integer-time).

This function returns the real UTC time as seen by the server’s clock, and should only be used in situations such as logging, where the true physical clock time is important.

Otherwise, one should always use CURRENT-TIME-UTC.

Package

quux-time.

Source

time.lisp.

Function: string-to-integer (object &rest keys)
Package

quux-time.

Source

macros.lisp.

Function: time-speeder-upper (rate)

Returns a lambda that generates time at ’rate’ x normal rate.

For use in the (with-current-time-function) macro.

Note that this clock still ’ticks’ once per wallclock second; it is just that each tick moves the time forward a large amount. If ’current-time-utc’ is called multiple times within that second, time will appear to be frozen.

See ’time-speeder-upper-hires’ for a clock that ticks more often.

Package

quux-time.

Source

time.lisp.

Function: time-speeder-upper-hires (rate)

Returns a lambda that generates time at ’rate’ x normal rate, at high resolution.

For use in the (with-current-time-function) macro.

This clock ticks at the rate given by ’internal-time-units-per-second’, typically 100.

Note: this clock breaks nesting, since it only relies on the outer scope to set the initial time for the clock.

Package

quux-time.

Source

time.lisp.

Function: time-to-iso8601-string (time utc/local time-format)

Create a string in ISO-8601 format from an integer-time.

Package

quux-time.

Source

time.lisp.

Function: upper-case-ascii-letter-p (ch)

Return true if the character is an ASCII uppercase character.

Package

quux-time.

Source

macros.lisp.

Function: utc-date-to-local (utc-date local-tofd tzoffset)

Return the local date for the given local time and UTC date. For example: 2-MAR 23:00 EST -> 1-MAR

Package

quux-time.

Source

time.lisp.

Function: utc-is-after-utc-p (a b)

Return T if ’a’ succeeds ’b’ in absolute (UTC) time.

Package

quux-time.

Source

time.lisp.

Function: utc-is-before-utc-p (a b)

Return T if ’a’ precedes ’b’ in absolute (UTC) time.

Package

quux-time.

Source

time.lisp.

Function: utc-time-to-local (time-utc tzoffset)

Given a UTC integer-time and a TZ offset, return the local integer-time.

Package

quux-time.

Source

time.lisp.

Function: utc-to-iso8601-string (time-utc)

Create a string in ISO-8601 format from a UTC integer-time.

Package

quux-time.

Source

time.lisp.

Function: write-duration (duration &optional stream &key format show-plus)
Package

quux-time.

Source

time.lisp.

Function: write-exploded-date (day month year weekday &optional stream &key format show-weekday use-uppercase)

Write an exploded local date to a stream; input is the component fixnums day, month, year, weekday.
If ’weekday’ is not NIL, ’:show-weekday’ specifies where to write an English weekday:
:before, :before-dash - before the date
:after, :dash-after - after the date
NIL - do not display weekday
If ’use-uppercase’ is NIL, mixed-case is used for English months and weekdays.

Possible output formats are:

English Month: :ddmth ’07JAN’
:ddmthyy ’07JAN99’
:ddmthyyyy ’07JAN1999’
:dd-mth-yyyy ’07-JAN-1999’

Numeric Month: :ddmmyy ’070199’
:mmddyy ’010799’
:ddmmyyyy ’07011999’
:yyyymmdd ’19990107’
:yymmdd ’990107’
:yyyy-mm-dd ’1999-01-07’
:nu/mm/yy ’01/99’
:nu/mm/yyyy ’01/1999’
:nu/mmyy ’0199’

Return value is NIL.

Package

quux-time.

Source

time.lisp.

Function: write-exploded-tofd (seconds minutes hours &optional stream &key format)

Write an exploded local tofd to a stream; input is the component seconds, minutes, and hours.
Possible output formats are:
:hh-mm = HH:MM :hh-mm-ss = HH:MM:SS :hh-mm-ap = HH:MMAM, HH:MMPM :_h-mm = H:MM :_h-mm-ap = H:MMa, H:MMp :hhmm = HHMM :hhmmss = HHMMSS :hhmmap = HHMMA, HHMMP :_hmmap = HMMA, HMMP

The "_h" formats use a leading space instead of a leading zero. Return value is NIL.

Package

quux-time.

Source

time.lisp.

Function: write-integer (integer stream &key width padding)

Write the integer to the stream. If it’s a fixnum and width is provided, pad it to that width with the padding character.

Package

quux-time.

Source

macros.lisp.

Function: write-integer-to-string (integer &key width padding)

Convenience function for int to string conversion.
Is actually a lot cheaper than prin1-to-string (1/3 the time and consing)

Package

quux-time.

Source

macros.lisp.

Function: write-iso8601-local (time &optional stream)

Write an integer-time to a stream in ISO-8601 format. decode as UTC, write as local (w/o ZULU indicator).

Package

quux-time.

Source

time.lisp.

Function: write-iso8601-time (time utc/local time-format &optional stream)
Package

quux-time.

Source

time.lisp.

Function: write-iso8601-utc (time-utc &optional stream)

Write an integer-time to a stream in ISO-8601 format. decode as UTC, write with UTC/ZULU indicator.

Package

quux-time.

Source

time.lisp.

Function: write-local-date (date &optional stream &key format show-weekday use-uppercase)

Write the given local integer-date DATE to STREAM according to the FORMAT, SHOW-WEEKDAY and USE-UPPERCASE arguments as expected by WRITE-EXPLODED-DATE.

Package

quux-time.

Source

time.lisp.

Function: write-local-date-range (time1 time2 &optional stream &key case long-p show-weekday show-year-p)
Package

quux-time.

Source

time.lisp.

Function: write-local-tofd (tofd &optional stream &key format)

Write a local tofd to a stream. ’tofd’ is an integer-tofd,
i.e. seconds from midnight.
Possible output formats are:
:hh-mm = HH:MM :hh-mm-ss = HH:MM:SS :hh-mm-ap = HH:MMAM, HH:MMPM :hhmm = HHMM :hhmmss = HHMMSS :hhmmap = HHMMA, HHMMP Return value is NIL.

Package

quux-time.

Source

time.lisp.

Function: write-padded-fixnum (fixnum stream width pad-char)

Write the fixnum to the stream, with the given width and padding.

Package

quux-time.

Source

macros.lisp.

Function: write-padded-fixnum-internal (fixnum absolute-value width stream pad-char)
Package

quux-time.

Source

macros.lisp.

Function: write-unpadded-fixnum (fixnum stream)

Write the fixnum to the stream. This is more efficient than using the regular Lisp printer.

Package

quux-time.

Source

macros.lisp.

Function: write-zoned-time (zul &optional stream &key date-as time-as show-weekday as-utc show-timezone use-uppercase)

Write the zoned-time ZUL to the STREAM. If DATE-AS is specified as :ISO8601, use ISO-8601 format with possible variations as specified by DATE-AS and TIME-AS. AS-UTC, if non-NIL, indicates that the the time should be considered as being UTC, with no timezone information output. The DATE-AS and TIME-AS arguments accept format arguments as accepted by WRITE-EXPLODED-DATE and WRITE-EXPLODED-TOFD.

Package

quux-time.

Source

time.lisp.


5.2.5 Generic functions

Generic Function: add-days (z days)
Package

quux-time.

Methods
Method: add-days ((z zoned-time) days)

Add some number of days to a zoned-time.

Source

time.lisp.

Generic Function: duration (a b)
Package

quux-time.

Methods
Method: duration ((a zoned-time) (b zoned-time))

Compute the signed duration (in seconds) from moment ’a’ to moment ’b’.

’a’ and ’b’ are ’zoned-time’ quantities.
If b is later than a, then the result is positive.

Source

time.lisp.

Generic Function: ends-with (string suffix &key end)
Package

quux-time.

Methods
Method: ends-with ((string string) (suffixes list) &key end)
Source

macros.lisp.

Method: ends-with ((string string) (suffix character) &key end)
Source

macros.lisp.

Method: ends-with ((string string) (suffix string) &key end)
Source

macros.lisp.

Generic Function: local-time (zul)
Package

quux-time.

Methods
Method: local-time ((zul zoned-time))

Return the local time of a zoned-time object.

Returns an ’integer-time’, i.e. seconds since the beginning of the lisp epoch.

Source

time.lisp.

Generic Function: make-zoned-date (z)
Package

quux-time.

Methods
Method: make-zoned-date ((z zoned-time))

Create a zoned-time matching input, but with zero’ed time components.

Source

time.lisp.

Generic Reader: tzoffset (object)
Package

quux-time.

Methods
Reader Method: tzoffset ((zoned-time zoned-time))

Offset (seconds) to local timezone (from UTC)

Source

time.lisp.

Target Slot

tz-offset.

Generic Reader: utc-time (object)
Package

quux-time.

Methods
Reader Method: utc-time ((zoned-time zoned-time))

UTC integer-time representation of moment

Source

time.lisp.

Target Slot

time-utc.

Generic Function: zoned-time (time-designator)

Transform the argument into a ZONED-TIME instance.
A string is parse in ISO8601 syntax, a ZONED-TIME instance is returned, and an integer is used as the utc argument to construct a new ZONED-TIME instance with offset 0.

Package

quux-time.

Source

time.lisp.

Methods
Method: zoned-time ((utc-time integer))
Method: zoned-time ((zoned-time zoned-time))
Method: zoned-time ((time-designator string))
Generic Function: zoned-time-equal-p (a b)
Package

quux-time.

Methods
Method: zoned-time-equal-p ((a zoned-time) (b zoned-time))

Return T if zoned-times A and B are equal (same time and tzoffset)

Source

time.lisp.


5.2.6 Classes

Class: zoned-time

An immutable time object which includes timezone information.
If both local and UTC views are ever relevant for some absolute temporal quantity, then a zoned-time should be used to represent that quantity.

Package

quux-time.

Source

time.lisp.

Direct methods
Direct slots
Slot: time-utc

UTC integer-time representation of moment

Type

quux-time:integer-time

Initargs

:utc

Readers

utc-time.

Writers

This slot is read-only.

Slot: tz-offset

Offset (seconds) to local timezone (from UTC)

Type

quux-time:integer-time

Initargs

:tzoffset

Readers

tzoffset.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %  
A   C   D   E   F   G   I   L   M   O   P   R   S   T   U   W   Z  
Index Entry  Section

%
%days-per-february-year: Private ordinary functions
%days-until-month: Private ordinary functions
%days-until-year-month: Private ordinary functions
%defconstant-eqx-value: Private ordinary functions
%show-all-new-time-formats: Private ordinary functions
%year-from-2digit-year: Private ordinary functions

A
add-days: Private generic functions
add-days: Private generic functions
advance-local-time: Private ordinary functions
advance-to-next-day-of-week: Private ordinary functions
ascii-digit-p: Private ordinary functions
ascii-letter-p: Private ordinary functions

C
check-types: Private macros
compute-date-change: Private ordinary functions
current-time-utc: Private ordinary functions
current-time-utc-db-override: Private ordinary functions
current-time-zoned: Private ordinary functions

D
date-change-indicator: Private ordinary functions
day-of-year: Private ordinary functions
days-per-month: Private ordinary functions
decode-integer-date: Private ordinary functions
decode-integer-time: Private ordinary functions
decode-integer-tofd: Private ordinary functions
decode-universal-time: Private ordinary functions
defconstant-eql: Private macros
defconstant-equal: Private macros
defconstant-equalp: Private macros
defconstant-eqx: Private macros
defconstant-unequal: Private macros
defun-inline: Private macros
dofw-name: Private ordinary functions
duration: Private generic functions
duration: Private generic functions

E
encode-integer-date: Private ordinary functions
encode-integer-time: Private ordinary functions
encode-integer-tofd: Private ordinary functions
encode-universal-time: Private ordinary functions
ends-with: Private generic functions
ends-with: Private generic functions
ends-with: Private generic functions
ends-with: Private generic functions
explode-iso8601: Private ordinary functions
explode-iso8601-date: Private ordinary functions
explode-iso8601-tofd: Private ordinary functions
explode-local-time: Private ordinary functions
explode-local-tofd: Private ordinary functions

F
first-minute-of-local-date: Private ordinary functions
Function, %days-per-february-year: Private ordinary functions
Function, %days-until-month: Private ordinary functions
Function, %days-until-year-month: Private ordinary functions
Function, %defconstant-eqx-value: Private ordinary functions
Function, %show-all-new-time-formats: Private ordinary functions
Function, %year-from-2digit-year: Private ordinary functions
Function, advance-local-time: Private ordinary functions
Function, advance-to-next-day-of-week: Private ordinary functions
Function, ascii-digit-p: Private ordinary functions
Function, ascii-letter-p: Private ordinary functions
Function, compute-date-change: Private ordinary functions
Function, current-time-utc: Private ordinary functions
Function, current-time-utc-db-override: Private ordinary functions
Function, current-time-zoned: Private ordinary functions
Function, date-change-indicator: Private ordinary functions
Function, day-of-year: Private ordinary functions
Function, days-per-month: Private ordinary functions
Function, decode-integer-date: Private ordinary functions
Function, decode-integer-time: Private ordinary functions
Function, decode-integer-tofd: Private ordinary functions
Function, decode-universal-time: Private ordinary functions
Function, dofw-name: Private ordinary functions
Function, encode-integer-date: Private ordinary functions
Function, encode-integer-time: Private ordinary functions
Function, encode-integer-tofd: Private ordinary functions
Function, encode-universal-time: Private ordinary functions
Function, explode-iso8601: Private ordinary functions
Function, explode-iso8601-date: Private ordinary functions
Function, explode-iso8601-tofd: Private ordinary functions
Function, explode-local-time: Private ordinary functions
Function, explode-local-tofd: Private ordinary functions
Function, first-minute-of-local-date: Private ordinary functions
Function, get-local-time: Private ordinary functions
Function, ilogbit-set: Private ordinary functions
Function, ilogbit-unset: Private ordinary functions
Function, ilogsubsetp: Private ordinary functions
Function, integer-number-of-digits: Private ordinary functions
Function, itus-to-ms: Private ordinary functions
Function, itus-to-us: Private ordinary functions
Function, last-minute-of-local-date: Private ordinary functions
Function, local-date-equal: Private ordinary functions
Function, local-date-long-dofw-name: Private ordinary functions
Function, local-date-offset: Private ordinary functions
Function, local-date-only: Private ordinary functions
Function, local-date-to-iso8601-string: Private ordinary functions
Function, local-date-to-string: Private ordinary functions
Function, local-date-to-string-format: Private ordinary functions
Function, local-date-to-utc: Private ordinary functions
Function, local-time-to-utc: Private ordinary functions
Function, local-tofd-only: Private ordinary functions
Function, local-tofd-to-string: Private ordinary functions
Function, lower-case-ascii-letter-p: Private ordinary functions
Function, make-zoned-time: Private ordinary functions
Function, merge-date-and-tofd: Private ordinary functions
Function, merge-date-and-tofd-zoned: Private ordinary functions
Function, month-name: Private ordinary functions
Function, override-local-time: Private ordinary functions
Function, pad-string-to-width: Private ordinary functions
Function, parse-duration: Private ordinary functions
Function, parse-iso8601-date: Private ordinary functions
Function, parse-iso8601-local: Private ordinary functions
Function, parse-iso8601-tofd-zoned: Private ordinary functions
Function, parse-iso8601-utc: Private ordinary functions
Function, parse-iso8601-zoned: Private ordinary functions
Function, parse-local-date: Private ordinary functions
Function, parse-local-time: Private ordinary functions
Function, parse-local-tofd: Private ordinary functions
Function, parse-right-trimming-whitespace: Private ordinary functions
Function, roll-time: Private ordinary functions
Function, round-time-to-next-minute: Private ordinary functions
Function, server-system-time-utc: Private ordinary functions
Function, string-to-integer: Private ordinary functions
Function, time-speeder-upper: Private ordinary functions
Function, time-speeder-upper-hires: Private ordinary functions
Function, time-to-iso8601-string: Private ordinary functions
Function, upper-case-ascii-letter-p: Private ordinary functions
Function, utc-date-to-local: Private ordinary functions
Function, utc-is-after-utc-p: Private ordinary functions
Function, utc-is-before-utc-p: Private ordinary functions
Function, utc-time-to-local: Private ordinary functions
Function, utc-to-iso8601-string: Private ordinary functions
Function, write-duration: Private ordinary functions
Function, write-exploded-date: Private ordinary functions
Function, write-exploded-tofd: Private ordinary functions
Function, write-integer: Private ordinary functions
Function, write-integer-to-string: Private ordinary functions
Function, write-iso8601-local: Private ordinary functions
Function, write-iso8601-time: Private ordinary functions
Function, write-iso8601-utc: Private ordinary functions
Function, write-local-date: Private ordinary functions
Function, write-local-date-range: Private ordinary functions
Function, write-local-tofd: Private ordinary functions
Function, write-padded-fixnum: Private ordinary functions
Function, write-padded-fixnum-internal: Private ordinary functions
Function, write-unpadded-fixnum: Private ordinary functions
Function, write-zoned-time: Private ordinary functions

G
Generic Function, add-days: Private generic functions
Generic Function, duration: Private generic functions
Generic Function, ends-with: Private generic functions
Generic Function, local-time: Private generic functions
Generic Function, make-zoned-date: Private generic functions
Generic Function, tzoffset: Private generic functions
Generic Function, utc-time: Private generic functions
Generic Function, zoned-time: Private generic functions
Generic Function, zoned-time-equal-p: Private generic functions
get-local-time: Private ordinary functions

I
i*: Private macros
i+: Private macros
i-: Private macros
i/: Private macros
i/=: Private macros
i1+: Private macros
i1-: Private macros
i<: Private macros
i<=: Private macros
i=: Private macros
i>: Private macros
i>=: Private macros
iash: Private macros
iceiling: Private macros
iceiling+: Private macros
idecf: Private macros
idpb: Private macros
ifloor: Private macros
ifloor+: Private macros
iincf: Private macros
ildb: Private macros
ilogand: Private macros
ilogandc2: Private macros
ilogbit-set: Private ordinary functions
ilogbit-unset: Private ordinary functions
ilogbitp: Private macros
ilogcount: Private macros
ilogeqv: Private macros
ilogior: Private macros
ilognot: Private macros
ilogsubsetp: Private ordinary functions
ilogtest: Private macros
ilogxor: Private macros
imax: Private macros
imaxf: Private macros
imin: Private macros
iminf: Private macros
iminusp: Private macros
imod: Private macros
integer-number-of-digits: Private ordinary functions
iplusp: Private macros
irem: Private macros
itruncate: Private macros
itus-to-ms: Private ordinary functions
itus-to-us: Private ordinary functions
izerop: Private macros

L
last-minute-of-local-date: Private ordinary functions
local-date-equal: Private ordinary functions
local-date-long-dofw-name: Private ordinary functions
local-date-offset: Private ordinary functions
local-date-only: Private ordinary functions
local-date-to-iso8601-string: Private ordinary functions
local-date-to-string: Private ordinary functions
local-date-to-string-format: Private ordinary functions
local-date-to-utc: Private ordinary functions
local-time: Private generic functions
local-time: Private generic functions
local-time-to-utc: Private ordinary functions
local-tofd-only: Private ordinary functions
local-tofd-to-string: Private ordinary functions
lower-case-ascii-letter-p: Private ordinary functions

M
Macro, check-types: Private macros
Macro, defconstant-eql: Private macros
Macro, defconstant-equal: Private macros
Macro, defconstant-equalp: Private macros
Macro, defconstant-eqx: Private macros
Macro, defconstant-unequal: Private macros
Macro, defun-inline: Private macros
Macro, i*: Private macros
Macro, i+: Private macros
Macro, i-: Private macros
Macro, i/: Private macros
Macro, i/=: Private macros
Macro, i1+: Private macros
Macro, i1-: Private macros
Macro, i<: Private macros
Macro, i<=: Private macros
Macro, i=: Private macros
Macro, i>: Private macros
Macro, i>=: Private macros
Macro, iash: Private macros
Macro, iceiling: Private macros
Macro, iceiling+: Private macros
Macro, idecf: Private macros
Macro, idpb: Private macros
Macro, ifloor: Private macros
Macro, ifloor+: Private macros
Macro, iincf: Private macros
Macro, ildb: Private macros
Macro, ilogand: Private macros
Macro, ilogandc2: Private macros
Macro, ilogbitp: Private macros
Macro, ilogcount: Private macros
Macro, ilogeqv: Private macros
Macro, ilogior: Private macros
Macro, ilognot: Private macros
Macro, ilogtest: Private macros
Macro, ilogxor: Private macros
Macro, imax: Private macros
Macro, imaxf: Private macros
Macro, imin: Private macros
Macro, iminf: Private macros
Macro, iminusp: Private macros
Macro, imod: Private macros
Macro, iplusp: Private macros
Macro, irem: Private macros
Macro, itruncate: Private macros
Macro, izerop: Private macros
Macro, maxf: Private macros
Macro, minf: Private macros
Macro, multiple-value-let: Private macros
Macro, multiple-value-let*: Private macros
Macro, with-current-integer-time-fixed: Private macros
Macro, with-current-time-cached: Private macros
Macro, with-current-time-fixed: Private macros
Macro, with-current-time-function: Private macros
Macro, with-gensyms: Private macros
Macro, with-virtual-sleep: Private macros
Macro, without-current-time-cached: Private macros
Macro, without-current-time-trickery: Private macros
make-zoned-date: Private generic functions
make-zoned-date: Private generic functions
make-zoned-time: Private ordinary functions
maxf: Private macros
merge-date-and-tofd: Private ordinary functions
merge-date-and-tofd-zoned: Private ordinary functions
Method, add-days: Private generic functions
Method, duration: Private generic functions
Method, ends-with: Private generic functions
Method, ends-with: Private generic functions
Method, ends-with: Private generic functions
Method, local-time: Private generic functions
Method, make-zoned-date: Private generic functions
Method, print-object: Public standalone methods
Method, tzoffset: Private generic functions
Method, utc-time: Private generic functions
Method, zoned-time: Private generic functions
Method, zoned-time: Private generic functions
Method, zoned-time: Private generic functions
Method, zoned-time-equal-p: Private generic functions
minf: Private macros
month-name: Private ordinary functions
multiple-value-let: Private macros
multiple-value-let*: Private macros

O
override-local-time: Private ordinary functions

P
pad-string-to-width: Private ordinary functions
parse-duration: Private ordinary functions
parse-iso8601-date: Private ordinary functions
parse-iso8601-local: Private ordinary functions
parse-iso8601-tofd-zoned: Private ordinary functions
parse-iso8601-utc: Private ordinary functions
parse-iso8601-zoned: Private ordinary functions
parse-local-date: Private ordinary functions
parse-local-time: Private ordinary functions
parse-local-tofd: Private ordinary functions
parse-right-trimming-whitespace: Private ordinary functions
print-object: Public standalone methods

R
roll-time: Private ordinary functions
round-time-to-next-minute: Private ordinary functions

S
server-system-time-utc: Private ordinary functions
string-to-integer: Private ordinary functions

T
time-speeder-upper: Private ordinary functions
time-speeder-upper-hires: Private ordinary functions
time-to-iso8601-string: Private ordinary functions
tzoffset: Private generic functions
tzoffset: Private generic functions

U
upper-case-ascii-letter-p: Private ordinary functions
utc-date-to-local: Private ordinary functions
utc-is-after-utc-p: Private ordinary functions
utc-is-before-utc-p: Private ordinary functions
utc-time: Private generic functions
utc-time: Private generic functions
utc-time-to-local: Private ordinary functions
utc-to-iso8601-string: Private ordinary functions

W
with-current-integer-time-fixed: Private macros
with-current-time-cached: Private macros
with-current-time-fixed: Private macros
with-current-time-function: Private macros
with-gensyms: Private macros
with-virtual-sleep: Private macros
without-current-time-cached: Private macros
without-current-time-trickery: Private macros
write-duration: Private ordinary functions
write-exploded-date: Private ordinary functions
write-exploded-tofd: Private ordinary functions
write-integer: Private ordinary functions
write-integer-to-string: Private ordinary functions
write-iso8601-local: Private ordinary functions
write-iso8601-time: Private ordinary functions
write-iso8601-utc: Private ordinary functions
write-local-date: Private ordinary functions
write-local-date-range: Private ordinary functions
write-local-tofd: Private ordinary functions
write-padded-fixnum: Private ordinary functions
write-padded-fixnum-internal: Private ordinary functions
write-unpadded-fixnum: Private ordinary functions
write-zoned-time: Private ordinary functions

Z
zoned-time: Private generic functions
zoned-time: Private generic functions
zoned-time: Private generic functions
zoned-time: Private generic functions
zoned-time-equal-p: Private generic functions
zoned-time-equal-p: Private generic functions


A.3 Variables

Jump to:   $   *   +  
C   S   T  
Index Entry  Section

$
$12hours: Private constants
$1hour: Private constants
$1minute: Private constants
$1second: Private constants
$1week: Private constants
$24hours: Private constants
$4hours: Private constants
$day-from-days: Private special variables
$days-per-february-year: Private constants
$days-per-month: Private constants
$days-until-month: Private special variables
$days-until-year-month: Private constants
$dofw-from-days: Private special variables
$first-minute-of-day: Private constants
$fixnum-max-bit-index: Private constants
$it-cache-first-day: Private constants
$it-cache-first-year: Private constants
$it-cache-last-day: Private constants
$it-cache-last-year: Private constants
$largest-tz-offset: Private constants
$last-minute-of-day: Private constants
$lowercase-days: Private constants
$lowercase-days-long: Private constants
$lowercase-days-ws: Private constants
$lowercase-months: Private constants
$lowercase-months-long: Private constants
$mixedcase-days: Private constants
$mixedcase-days-long: Private constants
$mixedcase-days-ws: Private constants
$mixedcase-months: Private constants
$mixedcase-months-long: Private constants
$month-from-days: Private special variables
$time-in-distant-future: Private constants
$time-in-distant-past: Private constants
$uppercase-days: Private constants
$uppercase-days-long: Private constants
$uppercase-days-ws: Private constants
$uppercase-months: Private constants
$uppercase-months-long: Private constants
$year-from-days: Private special variables

*
*current-time-function*: Private special variables
*unpadded-integer-strings*: Private special variables
*zero-padded-integer-strings-2*: Private special variables
*zero-padded-integer-strings-4*: Private special variables

+
+400-years-of-seconds+: Private constants

C
Constant, $12hours: Private constants
Constant, $1hour: Private constants
Constant, $1minute: Private constants
Constant, $1second: Private constants
Constant, $1week: Private constants
Constant, $24hours: Private constants
Constant, $4hours: Private constants
Constant, $days-per-february-year: Private constants
Constant, $days-per-month: Private constants
Constant, $days-until-year-month: Private constants
Constant, $first-minute-of-day: Private constants
Constant, $fixnum-max-bit-index: Private constants
Constant, $it-cache-first-day: Private constants
Constant, $it-cache-first-year: Private constants
Constant, $it-cache-last-day: Private constants
Constant, $it-cache-last-year: Private constants
Constant, $largest-tz-offset: Private constants
Constant, $last-minute-of-day: Private constants
Constant, $lowercase-days: Private constants
Constant, $lowercase-days-long: Private constants
Constant, $lowercase-days-ws: Private constants
Constant, $lowercase-months: Private constants
Constant, $lowercase-months-long: Private constants
Constant, $mixedcase-days: Private constants
Constant, $mixedcase-days-long: Private constants
Constant, $mixedcase-days-ws: Private constants
Constant, $mixedcase-months: Private constants
Constant, $mixedcase-months-long: Private constants
Constant, $time-in-distant-future: Private constants
Constant, $time-in-distant-past: Private constants
Constant, $uppercase-days: Private constants
Constant, $uppercase-days-long: Private constants
Constant, $uppercase-days-ws: Private constants
Constant, $uppercase-months: Private constants
Constant, $uppercase-months-long: Private constants
Constant, +400-years-of-seconds+: Private constants

S
Slot, time-utc: Private classes
Slot, tz-offset: Private classes
Special Variable, $day-from-days: Private special variables
Special Variable, $days-until-month: Private special variables
Special Variable, $dofw-from-days: Private special variables
Special Variable, $month-from-days: Private special variables
Special Variable, $year-from-days: Private special variables
Special Variable, *current-time-function*: Private special variables
Special Variable, *unpadded-integer-strings*: Private special variables
Special Variable, *zero-padded-integer-strings-2*: Private special variables
Special Variable, *zero-padded-integer-strings-4*: Private special variables

T
time-utc: Private classes
tz-offset: Private classes