Cal

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

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

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

Примеры

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

См. также


Примечания

  1. IEEE, The Open Group. Volume 3, Shell and Utilities // Information Technology — Portable Operating System Interface (POSIX®) Base Specifications, Issue 8 : [англ.]. — 2024.
  2. MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル (яп.) (1 апреля 1993).
  3. ibiblio.org FreeDOS Package -- cal (Unix-like) (англ.). www.ibiblio.org. Дата обращения: 27 января 2020. Архивировано 22 февраля 2020 года.
  4. Synopsis - man pages section 1: User Commands. docs.oracle.com. Дата обращения: 23 июня 2016. Архивировано 9 мая 2019 года.
  5. 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)

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.