Cal (kommando)

**** er et kommandolinje-verktøy på en rekke operativsystemer inkludert Unix, Plan 9, Inferno og Unix-lignende operativsystemer som Linux som skriver ut en ASCII kalender for den gitte måneden eller året. Dersom brukeren ikke angir noen alternativer vil `cal` skrive ut en kalender for inneværende måned. Kommandoen er et standardprogram på Unix og spesifisert i Single UNIX Specification.

## Implementeringer
`cal`-kommandoen var til stede i de første versjonene av Unix.  En `cal`-kommando er også en del av ASCII sitt *MSX-DOS2 Tools* for MSX-DOS versjon 2.

Den er også tilgjengelig for FreeDOS. Denne implementeringen støtter bare den gregorianske kalenderen og kan distribueres fritt, med eller uten kildekode. FreeDOS-versjonen ble utviklet av Charles Dye.

## Eksempler

```console
$ cal
   March 1984          
 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 31
```

```console
$ cal -3 (shows the previous, current and next month)
   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
```

```console
$ cal 2022
              2022
   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     1 2 3 4 5     1 2 3 4 5 
 2 3 4 5 6 7 8  6 7 8 9 10 11 12  6 7 8 9 10 11 12 
 9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19 
16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26 
23 24 25 26 27 28 29 27 28         27 28 29 30 31    
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 2  1 2 3 4 5 6 7      1 2 3 4 
 3 4 5 6 7 8 9  8 9 10 11 12 13 14  5 6 7 8 9 10 11 
10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18 
17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25 
24 25 26 27 28 29 30 29 30 31       26 27 28 29 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 2   1 2 3 4 5 6        1 2 3 
 3 4 5 6 7 8 9  7 8 9 10 11 12 13  4 5 6 7 8 9 10 
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17 
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24 
24 25 26 27 28 29 30 28 29 30 31      25 26 27 28 29 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     1 2 3 4 5        1 2 3 
 2 3 4 5 6 7 8  6 7 8 9 10 11 12  4 5 6 7 8 9 10 
 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17 
16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24 
23 24 25 26 27 28 29 27 28 29 30      25 26 27 28 29 30 31 
30 31
```

```console
$ cal 5 2014
   May 2014    
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 31
```


## Avvik ved historiske datoer

```console
$ 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
```


I september, år 1752, ble den gregorianske kalenderen tatt i bruk av kongeriket Storbritannia inkludert dets kolonier i Nord-Amerika (som senere ble det østlige USA og Canada). Programmet cal ble laget på denne bakgrunn, og som et resultat viser cal for denne måneden hvordan den måneden ble seende ut i Storbritannia. I andre land ble den gregorianske kalender tatt i bruk på ulike tidspunkt, og derfor er cal bare betinget anvendelig for historiske datoer fra før programmet ble skapt.

## Se også
* Cron, et programvareverktøy og tidsbasert jobbplanlegger i Unix-liknende operativsystemer
* ical (Unix), en kalenderpakke for Unix-systemer

## Referanser