cal (command)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
cal
DeveloperCharles Dye
Initial releaseNovember 3, 1971; 54 years ago (1971-11-03)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inPlan 9: C
FreeDOS: x86 assembly language
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix, Unix-like, Plan 9, Inferno, MSX-DOS, FreeDOS
    PlatformCross-platform
    TypeCommand
    Licenseutil-linux: BSD-4-Clause
    FreeDOS: Freeware / Source-available software
    Plan 9: MIT License

    cal is a shell command that prints a calendar as ASCII text for one or more months. With no command-line options, it prints a calendar for the current month.

    It is specified in the Single UNIX Specification and available on various operating systems including Unix, Plan 9, Inferno and Unix-like systems such as Linux. It was present in 1st Edition Unix. A cal command is also part of ASCII's MSX-DOS2 Tools for MSX-DOS version 2.[1] It is also available for FreeDOS (developed by Charles Dye) in which it supports the Gregorian calendar (new style) and may be distributed freely, with or without source.[2]

    Examples

    [edit | edit source]

    The following prints the current month calendar which in this case happens to be Feb. 2024.

    $ cal
        February 2024                   
     Su Mo Tu We Th Fr Sa
                  1  2  3
      4  5  6  7  8  9 10
     11 12 13 14 15 16 17
     18 19 20 21 22 23 24
     25 26 27 28 29
    

    The following prints a calendar for the previous, current and next month.

    $ cal -3
         June 2022             July 2022            August 2022       
    Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
              1  2  3  4                  1  2      1  2  3  4  5  6  
     5  6  7  8  9 10 11   3  4  5  6  7  8  9   7  8  9 10 11 12 13  
    12 13 14 15 16 17 18  10 11 12 13 14 15 16  14 15 16 17 18 19 20  
    19 20 21 22 23 24 25  17 18 19 20 21 22 23  21 22 23 24 25 26 27  
    26 27 28 29 30        24 25 26 27 28 29 30  28 29 30 31
    

    The following prints a calendar for each month of 2023.

    $ cal 2023
                                2023
          January               February               March          
    Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
     1  2  3  4  5  6  7            1  2  3  4            1  2  3  4  
     8  9 10 11 12 13 14   5  6  7  8  9 10 11   5  6  7  8  9 10 11  
    15 16 17 18 19 20 21  12 13 14 15 16 17 18  12 13 14 15 16 17 18  
    22 23 24 25 26 27 28  19 20 21 22 23 24 25  19 20 21 22 23 24 25  
    29 30 31              26 27 28              26 27 28 29 30 31     
                                                                      
           April                  May                   June          
    Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
                       1      1  2  3  4  5  6               1  2  3  
     2  3  4  5  6  7  8   7  8  9 10 11 12 13   4  5  6  7  8  9 10  
     9 10 11 12 13 14 15  14 15 16 17 18 19 20  11 12 13 14 15 16 17  
    16 17 18 19 20 21 22  21 22 23 24 25 26 27  18 19 20 21 22 23 24  
    23 24 25 26 27 28 29  28 29 30 31           25 26 27 28 29 30     
    30                                                                
            July                 August              September        
    Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
                       1         1  2  3  4  5                  1  2  
     2  3  4  5  6  7  8   6  7  8  9 10 11 12   3  4  5  6  7  8  9  
     9 10 11 12 13 14 15  13 14 15 16 17 18 19  10 11 12 13 14 15 16  
    16 17 18 19 20 21 22  20 21 22 23 24 25 26  17 18 19 20 21 22 23  
    23 24 25 26 27 28 29  27 28 29 30 31        24 25 26 27 28 29 30  
    30 31                                                             
          October               November              December        
    Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
     1  2  3  4  5  6  7            1  2  3  4                  1  2  
     8  9 10 11 12 13 14   5  6  7  8  9 10 11   3  4  5  6  7  8  9  
    15 16 17 18 19 20 21  12 13 14 15 16 17 18  10 11 12 13 14 15 16  
    22 23 24 25 26 27 28  19 20 21 22 23 24 25  17 18 19 20 21 22 23  
    29 30 31              26 27 28 29 30        24 25 26 27 28 29 30  
                                                31
    

    The following prints a calendar for the June 2023. A month is specified by its number (1-12) in the year.

    $ cal 6 2023
          June 2023        
    Su Mo Tu We Th Fr Sa  
                 1  2  3  
     4  5  6  7  8  9 10  
    11 12 13 14 15 16 17  
    18 19 20 21 22 23 24  
    25 26 27 28 29 30
    

    Quirks (1752)

    [edit | edit source]
    $ cal 9 1752
      September 1752
     S  M Tu  W Th  F  S
           1  2 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    

    The Gregorian calendar reform was adopted by the Kingdom of Great Britain, including its possessions in North America (later to become eastern USA and Canada), in September 1752. As a result, the September 1752 cal shows the adjusted days missing. This month was the official (British) adoption of the Gregorian calendar from the previously used Julian calendar. This has been documented in the man pages for Sun Solaris as follows. "An unusual calendar is printed for September 1752. That is the month when 11 days were skipped to make up for lack of leap year adjustments."[3] The Plan 9 from Bell Labs manual states: "Try cal sep 1752." Date of adoption of the reform differs widely between countries so, for some users, this feature may be a bug. Special handling of 1752 is known to have appeared as early as the first edition of the Unix Programmer's Manual in 1971.[4]

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

    Sources

    [edit | edit source]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]