CAL(1)

NAZWA
cal - wyświetla kalendarz

SKŁADNIA

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

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

OPIS

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.

OPCJE

-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]
    Display week numbers in the calendar according to the US or ISO-8601 format. If a number is specified, the requested week in the desired or current year will be printed and its number highlighted. The number may be ignored if month is also specified.

    If the number is specified but the current day is unspecified on the command line, then the current day is not highlighted.

    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.

PARAMETRY

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.

UWAGI

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.

KOLORY

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

Od wersji 2.41, obsługiwana jest również zmienna środowiskowa $NO_COLOR, służąca do wyłączenia kolorowania wyjścia, o ile nie włączy się je wprost opcją wiersza poleceń.

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

HISTORIA

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

USTERKI

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.

ZOBACZ TAKŻE

terminal-colors.d(5)

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie cal jest częścią pakietu util-linux, który można pobrać ze strony