# cal

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           cal — print a calendar
    


## SYNOPSIS



           cal **[[**_month_**]**_year_**]**
    


## DESCRIPTION



           The _cal_ utility shall write a calendar to standard output using
           the Julian calendar for dates from January 1, 1 through September
           2, 1752 and the Gregorian calendar for dates from September 14,
           1752 through December 31, 9999 as though the Gregorian calendar
           had been adopted on September 14, 1752.
    
           If no operands are given, _cal_ shall produce a one-month calendar
           for the current month in the current year. If only the _year_
           operand is given, _cal_ shall produce a calendar for all twelve
           months in the given calendar year. If both _month_ and _year_ operands
           are given, _cal_ shall produce a one-month calendar for the given
           month in the given year.
    


## OPTIONS



           None.
    


## OPERANDS



           The following operands shall be supported:
    
           _month_     Specify the month to be displayed, represented as a
                     decimal integer from 1 (January) to 12 (December).
    
           _year_      Specify the year for which the calendar is displayed,
                     represented as a decimal integer from 1 to 9999.
    


## STDIN



           Not used.
    


## INPUT FILES



           None.
    


## ENVIRONMENT VARIABLES



           The following environment variables shall affect the execution of
           _cal_ :
    
           _LANG_      Provide a default value for the internationalization
                     variables that are unset or null. (See the Base
                     Definitions volume of POSIX.1‐2017, _Section 8.2_ ,
                     _Internationalization Variables_ for the precedence of
                     internationalization variables used to determine the
                     values of locale categories.)
    
           _LC_ALL_    If set to a non-empty string value, override the values
                     of all the other internationalization variables.
    
           _LC_CTYPE_  Determine the locale for the interpretation of sequences
                     of bytes of text data as characters (for example,
                     single-byte as opposed to multi-byte characters in
                     arguments).
    
           _LC_MESSAGES_
                     Determine the locale that should be used to affect the
                     format and contents of diagnostic messages written to
                     standard error, and informative messages written to
                     standard output.
    
           _LC_TIME_   Determine the format and contents of the calendar.
    
           _NLSPATH_   Determine the location of message catalogs for the
                     processing of _LC_MESSAGES_.
    
           _TZ_        Determine the timezone used to calculate the value of
                     the current month.
    


## ASYNCHRONOUS EVENTS



           Default.
    


## STDOUT



           The standard output shall be used to display the calendar, in an
           unspecified format.
    


## STDERR



           The standard error shall be used only for diagnostic messages.
    


## OUTPUT FILES



           None.
    


## EXTENDED DESCRIPTION



           None.
    


## EXIT STATUS



           The following exit values shall be returned:
    
            0    Successful completion.
    
           >0    An error occurred.
    


## CONSEQUENCES OF ERRORS



           Default.
    
           _The following sections are informative._
    


## APPLICATION USAGE



           Note that:
    
               cal 83
    
           refers to A.D. 83, not 1983.
    


## EXAMPLES



           None.
    


## RATIONALE



           Earlier versions of this standard incorrectly required that the
           command:
    
               cal 2000
    
           write a one-month calendar for the current calendar month (no
           matter what the current year is) in the year 2000 to standard
           output. This did not match historic practice in any known version
           of the _cal_ utility. The description has been updated to match
           historic practice.  When only the _year_ operand is given, _cal_
           writes a twelve-month calendar for the specified year.
    


## FUTURE DIRECTIONS



           A future version of this standard may support locale-specific
           recognition of the date of adoption of the Gregorian calendar.
    


* * *