CAL(1) Polecenia użytkownika CAL(1)

cal - wyświetla kalendarz

cal [opcje] [[[dzień] miesiąc] rok]

cal [opcje] [znacznik-czasu|nazwa-miesiąca]

cal wyświetla prosty kalendarz. Jeśli nie poda się argumentów, wyświetlany jest bieżący miesiąc.

Miesiąc można podać jako liczbę (1-12), nazwę miesiąca lub skróconą nazwę miesiąca zgodnie z bieżącymi ustawieniami regionalnymi (locale).

Używane są dwa różne kalendarze - gregoriański i juliański. Są to niemal identyczne systemy, z tą różnicą, że gregoriański bierze niewielką poprawkę na częstość lat przestępnych; dzięki temu poprawia się synchronizacja ze zdarzeniami słonecznymi, takimi jak równonoce. Reformę kalendarza gregoriańskiego ogłoszono w roku 1582 (w tym w Polsce), ale wprowadzano go aż do 1923. Domyślną datą wprowadzenia reformy używaną przez cal jest 3 września 1752. Od tej daty wyświetlany jest kalendarz gregoriański; poprzednie wyświetlane są w systemie kalendarza juliańskiego. W momencie wprowadzenia usunięto 11 dni, aby zsynchronizowań kalendarz ze zdarzeniami słonecznymi. Wrzesień roku 1752 jest więc mieszanką dat juliańskich i gregoriańskich, dlatego po 2. następuje 14. (daty od 3. do 13. nie występują).

Opcjonalnie, można używać kalendarza gregoriańskiego (w tym retroaktywnie), albo wyłącznie kalendarza juliańskiego. Zob. opcja --reform poniżej.

-1, --one

Wyświetla pojedynczy miesiąc (tak jest domyślnie).

-3, --three

Wyświetla trzy miesiące otaczające datę.

-n , --months liczba

Wyświetla liczbę miesięcy, zaczynając od miesiąca zawierające datę.

-S, --span

Wyświetla miesiące otaczające datę.

-s, --sunday

Wyświetla niedzielę jako pierwszy dzień tygodnia.

-m, --monday

Wyświetla poniedziałek jako pierwszy dzień tygodnia.

-v, --vertical

Korzysta z pionowego układu wyświetlania (inaczej tryb ncal(1)).

--iso

Korzysta (w tym retroaktywnie) tylko z kalendarza gregoriańskiego. Opcja ta nie wpływa na numery tygodni i pierwszy dzień tygodnia. Zob. --reform poniżej.

-j, --julian

Używa numerowania dni roku we wszystkich kalendarzach. Zakres numerów porządkowych dni wynosi od 1 do 366. Opcja ta nie przełącza z systemu gregoriańskiego na juliański; za to odpowiada opcja --reform.

W języku angielskim, kalendarze gregoriańskie korzystające z numerów porządkowych dni roku są czasem zwane kalendarzami juliańskimi. Może być to mylące, ponieważ wiele konwencji dotyczących dat ma w swej nazwie "juliański": data juliańska (porządkowa), data juliańska (kalendarzowa), data juliańska (astronomiczna), data juliańska (zmodyfikowana) itd. Ta opcja nosi nazwę "julian", ponieważ numery porządkowe dni są tak identyfikowane w standardzie POSIX. Proszę jednak mieć świadomość, że cal korzysta również z systemu kalendarze juliańskiego. Zob. OPIS powyżej.

--reform wartość

Opcja ustawia datę wprowadzenia reformy kalendarza gregoriańskiego. Daty sprzed reformy korzystają z systemu kalendarza juliańskiego. Daty po reformie korzystają z systemu kalendarza gregoriańskiego. Argumentem wartość może być:
1752 - ustawia 3 września 1752 r. jako datę reformy (tak jest domyślnie). W tym dniu reforma kalendarza gregoriańskiego została wprowadzona w Imperium Brytyjskim.
gregorian - korzysta tylko z kalendarza gregoriańskiego. Ta wartość specjalna ustawia datę reformy na wcześniej, niż najwcześniejszy rok, jakiego może użyć cal; co oznacza że wszystkie wyświetlane daty będą korzystały z systemu kalendarza gregoriańskiego. Daty przed utworzeniem systemu kalendarza gregoriańskiego będą retroaktywnie ekstrapolowane.
iso - alias wartości gregorian. Standard ISO 8601 do wymiany dat wymaga korzystania z (retroaktywnego) kalendarza gregoriańskiego.
julian - korzysta tylko z kalendarza juliańskiego. Ta wartość specjalna ustawia datę reformy na później, niż najpóźniejszy rok, jakiego może użyć cal; co oznacza że wszystkie wyświetlane daty będą korzystały z systemu kalendarza juliańskiego.

Zob. OPIS powyżej.

-y, --year

Wyświetla kalendarz na cały rok.

-Y, --twelve

Wyświetla kalendarz na dwanaście kolejnych miesięcy.

-w, --week[=liczba]

Wyświetla numery tygodni w kalendarzu zgodnie z formatem US lub ISO-8601. Jeśli poda się liczbę, zostanie wyświetlony żądany tydzień w określonym lub bieżącym roku. Liczba może zostać przesłonięta, jeśli poda się również dzień i miesiąc.

Więcej szczegółów w rozdziale UWAGI.

--color[=kiedy]

Koloryzuje wynik. Opcjonalnym argumentem kiedy może być auto, never (nigdy) lub always (zawsze). Gdy nie poda się argumentu kiedy, domyślnym ustawieniem jest auto. Kolory mogą być wyłączone; aktualne wbudowane ustawienie domyślne pokaże opcja --help. Zob. również rozdział KOLORY.

-c, --columns=kolumny

Liczba używanych kolumn. Wartość auto użyje tylu, ile zmieści się na terminalu.

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

Pojedynczy parametr liczbowy (np. "cal 2020")

Określa wyświetlany rok; trzeba podać pełny rok: cal 89 nie wyświetli kalendarza na rok 1989.

Pojedynczy parametr tekstowy (np., 'cal tomorrow' lub 'cal sierpień')

Określa znacznik-czasu lub nazwę-miesiąca (lub jej trzyliterowy skrót), zgodnie z bieżącymi ustawieniami regionalnymi (locale).

Przy przetwarzaniu znacznika-czasu akceptowane są następujące wartości specjalne: "now" oznacza chwilę bieżącą, "today", "yesterday", "tomorrow" oznaczają odpowiednio, dziś, wczoraj i jutro.

Akceptowane są również relatywne określenia daty, w takim przypadku "+" jest obliczany jako chwila obecna plus podany czas. Odpowiednio, data poprzedzona znakiem "-" oznacza chwilę obecną minus podany czas np. "+2days" (dwa dni naprzód). Zamiast poprzedzać określenie czasu znakami "+" lub "-", można po nim podać słowo "left" lub "ago" oznaczające przeszłość (np. "1 week ago" - 1 tydzień temu).

Dwa parametry (np. "cal 11 2020")

Wskazuje miesiąc (1 - 12) i rok.

Trzy parametry (np. "cal 25 11 2020")

Oznacza dzień (1-31), miesiąc i rok, przy czym jeśli kalendarz jest wyświetlany na terminalu, dzień zostanie podświetlony. Jeśli nie poda się żadnych parametrów, wyświetlany jest kalendarz dla bieżącego miesiąca.

Rok zaczyna się 1 stycznia. Pierwszy dzień tygodnia zależy od ustawień regionalnych (locale) albo opcji --sunday lub --monday.

Numerowanie tygodni zależy od wyboru pierwszego dnia tygodnia. Jeśli będzie to niedziela, stosowany jest zwyczaj amerykański, w którym 1 stycznia wypada w 1. tygodniu. Jeśli będzie to poniedziałek, stosowane jest standardowe numerowanie tygodni ISO 8601, w którym pierwszy czwartek wypada w 1. tygodniu.

Kolorowanie wyjściowe zaimplementowano poprzez terminal-colors.d(5). Jawne kolorowanie można wyłączyć za pomocą pustego pliku

/etc/terminal-colors.d/cal.disable

dla polecenia cal albo dla wszystkich narzędzi plikiem

/etc/terminal-colors.d/disable

Since version 2.41, the $NO_COLOR environment variable is also supported to disable output colorization unless explicitly enabled by a command-line option.

Globalne ustawienie przesłonią $XDG_CONFIG_HOME/terminal-colors.d lub $HOME/.config/terminal-colors.d danego użytkownika.

Proszę zauważyć, że kolorowanie wyjścia może być domyślnie włączone i wówczas katalogi terminal-colors.d mogą jeszcze nie istnieć.

Logiczne nazwy kolorów obsługiwane przez cal to:

today

Dziś.

weeknumber

Numer tygodnia zażądany opcją wiersza poleceń --week=<liczba>.

weeks

Numer tygodnia.

header

Nagłówek miesiąca.

workday

Dni robocze.

weekend

Dni weekendu.

Na przykład:

echo -e 'weekend 35\ntoday 1;41\nheader yellow' > $HOME/.config/terminal-colors.d/cal.scheme

Polecenie cal pojawiło się w wersji 6 AT&T UNIX.

Domyślne wyjście cal używa 3 września 1752 jako daty kalendarze gregoriańskiego. Historyczne daty wprowadzenia reformy w innych państwach (w tym w Polsce), łącznie z jej ogłoszeniem w październiku 1582 r., nie są zaimplementowane.

Alternatywne kalendarze, takie jak saudyjski kalendarz Umm al-Qura, islamski kalendarz słoneczny (hijri), kalendarz etiopski (gyyz) lub indyjski kalendarz księżycowo-słoneczny nie są obsługiwane.

terminal-colors.d(5)

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Polecenie cal jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2025-03-29 util-linux 2.41