CONVCAL(1)                       User's Manual                      CONVCAL(1)

       convcal - convert dates to different formats

       convcal [OPTIONS] [DATE]

       convcal is part of the grace software package, an application for two-
       dimensional data visualization. convcal converts dates from and to
       various formats. The following date formats are supported (hour,
       minutes and seconds are always optional):

       iso    1999-12-31T23:59:59.999

              31/12/1999 23:59:59.999 or 31/12/99 23:59:59.999

       us     12/31/1999 23:59:59.999 or 12/31/99 23:59:59.999

       days   123456.789


       The formats are tried in the following order : users's choice, iso,
       european and us (there is no ambiguity between calendar formats and
       numerical formats and therefore no order is specified for them).

       convcal reads the dates either on the command line or in the standard
       input if the command line contains no date.

       The user's choice for the input format put one format before the other
       ones in the trial list, this is mainly useful for US citizen which
       would certainly prefer to have US format checked before european
       format. The default user's choice (nohint) does nothing so the
       following formats of the list are checked.

       The separators between various fields can be any characters in the set:
       " :/.-T". One or more spaces act as one separator, other characters can
       not be repeated, the T separator is allowed only between date and time,
       mainly for iso8601. So the string "1999-12 31:23-59" is allowed (but
       not recommended).  The '-' character is used both as a separator (it is
       traditionally used in iso8601 format) and as the unary minus (for dates
       in the far past or for numerical dates). When the year is between 0 and
       99 and is written with two or less digits, it is mapped to the era
       beginning at wrap year and ending at wrap year + 99 as follows :

       [wy ; 99] -> [ wrap_year ; 100*(1 + wrap_year/100) - 1 ]

       [00 ; wy-1] -> [ 100*(1 + wrap_year/100) ; wrap_year + 99]

       so for example if the wrap year is set to 1950 (which is the default
       value), then the mapping is :

       range [00 ; 49] is mapped to [2000 ; 2049]

       range [50 ; 99] is mapped to [1950 ; 1999]

       this is reasonably Y2K compliant and is consistent with current use.
       Specifying year 1 is still possible using more than two digits as
       follows : "0001-03-04" is unambiguously March the 4th, year 1, even if
       the user's choice is us format. However using two digits only is not
       recommended (we introduce a 2050 bug here so this feature should be
       removed at some point in the future ;-)

       Numerical dates (days and seconds formats) can be specified using
       integer, real or exponential formats (the 'd' and 'D' exponant markers
       from fortran are supported in addition to 'e' and 'E').  They are
       computed according to a customizable reference date.  The default value
       is given by the REFDATE constant in the source file.  You can change
       this value as you want before compiling, and you can change it at will
       using the -r command line option. The default value in the distributed
       file is "-4713-01-01T12:00:00", it is a classical reference for
       astronomical events (note that the '-' is used here both as a unary
       minus and as a separator).

       The program can be used either for Denys's and gregorian calendars. It
       does not take into account leap seconds : you can think it works only
       in International Atomic Time (TAI) and not in Coordinated Unified Time
       (UTC) ...  Inexistant dates are detected, they include year 0, dates
       between 1582-10-05 and 1582-10-14, February 29th of non leap years,
       months below 1 or above 12, ...

       A summary of the options supported by convcal is included below.

       -h     prints the help message on stderr and exits successfully

       -i format
              set user's choice for input format, supported formats are iso,
              european, us, days, seconds and nohint.  At the beginning the
              input format is nohint, which means the program try to guess the
              format by itself, if the user's choice does not allow to parse
              the date, other formats are tried

       -o format
              force output format, supported formats are iso, european, us,
              days, seconds and nohint.  At the beginning, the output format
              is nohint, which means the program uses days format for dates
              read in any calendar format and uses iso8601 for dates read in
              numerical format

       -r date
              set reference date (the date is read using the current input
              format) at the beginning the reference is set according to the
              REFDATE constant in the code, which is -4713-01-01T12:00:00 in
              the distributed file.

       -w year
              set the wrap year to year


       Luc Maisonobe

       This man-page was written by Jan Schaumann <> as
       part of "The Missing Man Pages Project".  Please see for details.

grace                           August 11, 2001                     CONVCAL(1)