Cal (command): Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Removed accidental December 32nd
 
imported>0xC0000005
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Short description |Shell command for printing a calendar}}
{{lowercase title}}
{{lowercase title}}
{{Infobox software
{{Infobox software
Line 17: Line 18:
| website                =  
| website                =  
}}
}}
'''{{code|cal}}'''<!-- do not subst template: <code> tag breaks popups --> is a [[command-line interface|command-line]] utility on a number of computer [[operating system]]s including [[Unix]], [[Plan 9 from Bell Labs|Plan 9]], [[Inferno (operating system)|Inferno]] and [[Unix-like]] operating systems such as [[Linux]] that prints an [[ASCII]] calendar of the given month or year. If the user does not specify any [[command-line option]]s, <code>cal</code> will print a calendar of the current month. The command is a standard program on Unix and specified in the [[Single UNIX Specification]].
'''{{code|cal}}'''<!-- do not subst template: <code> tag breaks popups --> is a [[shell (computing)|shell]] [[command (computing)|command]] that prints a [[calendar]] as [[ASCII]] text for one or more [[month]]s. With no [[command-line option]]s, it prints a calendar for the current month.  


==Implementations==
It is specified in the [[Single UNIX Specification]] and available on various [[operating system]]s including [[Unix]], [[Plan 9 from Bell Labs |Plan 9]], [[Inferno (operating system)|Inferno]] and [[Unix-like]] systems such as [[Linux]]. It was present in [[Research Unix|1st Edition Unix]]. A <code>cal</code> command is also part of [[ASCII Corporation |ASCII]]'s ''MSX-DOS2 Tools'' for [[MSX-DOS]] version 2.<ref>{{Cite web|url=https://archive.org/details/MSXDOS2TOOLS|title=MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル|date=April 1, 1993|via=Internet Archive}}</ref> 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.<ref>{{Cite web|url=https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/cal.html|title=ibiblio.org FreeDOS Package -- cal (Unix-like)|website=www.ibiblio.org}}</ref>
The <code>cal</code> command was present in [[Research Unix|1st Edition Unix]]. A <code>cal</code> command is also part of [[ASCII Corporation|ASCII]]'s ''MSX-DOS2 Tools'' for [[MSX-DOS]] version 2.<ref>{{Cite web|url=https://archive.org/details/MSXDOS2TOOLS|title=MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル|date=April 1, 1993|via=Internet Archive}}</ref> It is also available for [[FreeDOS]]. This implementation only supports the Gregorian calendar (New Style) and may be distributed freely, with or without source. The FreeDOS version was developed by Charles Dye.<ref>{{Cite web|url=https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/cal.html|title=ibiblio.org FreeDOS Package -- cal (Unix-like)|website=www.ibiblio.org}}</ref>


==Examples==
==Examples==
The following prints the current month calendar which in this case happens to be Feb. 2024.
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ cal
$ cal
Line 33: Line 35:
  25 26 27 28 29
  25 26 27 28 29
</syntaxhighlight>
</syntaxhighlight>
The following prints a calendar for the previous, current and next month.


<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ cal -3 (shows the previous, current and next month)
$ cal -3
     June 2022            July 2022            August 2022       
     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   
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa   
Line 44: Line 48:
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30 31
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30 31
</syntaxhighlight>
</syntaxhighlight>
The following prints a calendar for each month of 2023.


<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
Line 81: Line 87:
                                             31               
                                             31               
</syntaxhighlight>
</syntaxhighlight>
The following prints a calendar for the June 2023. A month is specified by its number (1-12) in the year.


<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
Line 104: Line 112:
</syntaxhighlight>
</syntaxhighlight>


The [[Gregorian calendar|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."<ref>{{Cite web|url=https://docs.oracle.com/cd/E26502_01/html/E29030/cal-1.html#scrolltoc|title=Synopsis - man pages section 1: User Commands|website=docs.oracle.com}}</ref> The [[Plan 9 from Bell Labs]] manual states: "Try {{mono|cal sep 1752}}." Date of adoption of the reform [[Adoption of the Gregorian calendar|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.<ref>{{Cite book |last=Thompson |first=K. |url=http://squoze.net/UNIX/v1man/man6/cal |title=Unix Programmer's Manual |last2=Ritchie |first2=D. M. |publisher=Bell Telephone Laboratories |year=1971 |edition=First |pages=cal (VI)}}</ref>
The [[Gregorian calendar|Gregorian calendar reform]] was adopted by the [[Kingdom of Great Britain]], including [[British America|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."<ref>{{Cite web|url=https://docs.oracle.com/cd/E26502_01/html/E29030/cal-1.html#scrolltoc|title=Synopsis - man pages section 1: User Commands|website=docs.oracle.com}}</ref> The [[Plan 9 from Bell Labs]] manual states: "Try {{mono|cal sep 1752}}." Date of adoption of the reform [[Adoption of the Gregorian calendar|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.<ref>{{Cite book |last=Thompson |first=K. |url=http://squoze.net/UNIX/v1man/man6/cal |title=Unix Programmer's Manual |last2=Ritchie |first2=D. M. |publisher=Bell Telephone Laboratories |year=1971 |edition=First |pages=cal (VI)}}</ref>


==See also==
==See also==
* [[Cron]] – process for scheduling jobs to run on a particular date
* {{Annotated link| Cron}}
* [[List of Unix commands]]
* {{Annotated link| List of POSIX commands}}


==References==
==References==

Latest revision as of 02:51, 17 August 2025

Template:Short description

Script error: No such module "Infobox". Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters". 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

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)

Script error: No such module "labelled list hatnote".

$ 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 <templatestyles src="Mono/styles.css" />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

References

<templatestyles src="Reflist/styles.css" />

  1. ↑ Script error: No such module "citation/CS1".
  2. ↑ Script error: No such module "citation/CS1".
  3. ↑ Script error: No such module "citation/CS1".
  4. ↑ Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters". <templatestyles src="Refbegin/styles.css" />

Sources

  • Script error: No such module "citation/CS1".

External links

Script error: No such module "Side box".

Script error: No such module "Navbox". Template:Plan 9 commands Template:Calendaring software