Перейти к содержанию

cal

Материал из Википедии — свободной энциклопедии

cal
Скриншот программы cal
Команда cal в сеансе zsh в Linux в Arch Linux
Тип Команда
Разработчик Charles Dye
Написана на Plan 9: C
FreeDOS: язык ассемблера x86
Операционные системы Unix, Unix-like, Plan 9, Inferno, MSX-DOS, FreeDOS
Дата выпуска 3 ноября 1971; 54 года назад (1971-11-03)
Аппаратная платформа Cross-platform
Лицензия util-linux: BSD-4-Clause
FreeDOS: Freeware / ПО с доступным исходным кодом
Plan 9: MIT License

calкоманда облочки, которая выводит календарь в виде текста в кодировке ASCII на один или несколько месяцев. При использовании без параметров выводит календарь на текущий месяц.

Она описана в единой спицификации UNIX и доступна на различных операционных системах, включая Unix, Plan 9, Inferno и Unix-подобные операционные системы вроде Linux. Была представлена в первой версии Unix. Команда cal также входит в состав Иструментов ASCII для MSX-DOS2 для MSX-DOS версии 2.[1] Доступна для FreeDOS (разработана Чарльзом Дайем), в которой поддерживает григорианский календарь (новый стиль) и может распространяться бесплатно, с исходным кодом или без него.[2]

Вывод календаря на текущий месяц, которым в данном случае является февраль 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

Вывод календаря на предыдущий, текущий и следующий месяцы.

$ 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

Вывод календаря на каждый месяц 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

Вывод календаря на июнь 2023 года. Месяц выбирается по его номеру (1-12) в году.

$ 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

Странности (1752)

[править | править код]
$ 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

Королевство Великобритания вместе со своими владениями на Северной Америке (которые позже стали восточной частью США и Канадой) перешло на Григорианский календарь в сентябре 1752 года. По этой причине для сентября 1752 года команда cal не выводит пропущенные для корректировки дни. В этом месяце был официально (британцами) принят григорианский календарь вместо ранее использовавшегося юлианского. Это было задокументировано в справочных страницах Sun Solaris следующим образом: "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." («Необычный календарь на сентябрь 1752 года. В этом месяце было пропущено 11 дней, чтобы компенсировать отсутствие високосных лет»)[3]. В руководстве к Plan 9 говорится: "Попробуйте вызвать cal sep 1752". День принятия реформы в разных странах сильно различается, поэтому для некоторые пользователи могут воспринять это как ошибку. Известно, что особая обработка числа 1752 появилась еще в первом издании Unix Programmer's Manual (Руководства программиста Unix) в 1971 году.[4]

Примечания

[править | править код]
  1. MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル (1 апреля 1993).
  2. ibiblio.org FreeDOS Package -- cal (Unix-like). www.ibiblio.org. Дата обращения: 27 января 2020. Архивировано 22 февраля 2020 года.
  3. Synopsis - man pages section 1: User Commands. docs.oracle.com. Дата обращения: 23 июня 2016. Архивировано 9 мая 2019 года.
  4. Thompson, K. Unix Programmer's Manual / K. Thompson, D. M. Ritchie. — First. — Bell Telephone Laboratories, 1971. — P. cal (VI).

Литература

[править | править код]
  • Ray, Deborah S. Calendaring with cal // Unix and Linux: Visual QuickStart Guide / Deborah S. Ray, Eric J. Ray. — Book Publishers, 2010. — P. 276–278. ISBN 9780132104470.
  • cal(1)  страница справки man по пользовательским командам Plan 9  (англ.)
  • cal(1)  страница справки man по пользовательским командам GNU/Linux  (англ.)
  • cal(1)  страница справки man по пользовательским командам FreeBSD  (англ.)
  • cal(1)  страница справки man по пользовательским командам NetBSD  (англ.)
  • cal(1)  страница справки man по пользовательским командам OpenBSD  (англ.)
  • Source of explanation of cal 9 1752 phenomena (humor)