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]
    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, a jego numer będzie podświetlony. Liczba może zostać zignorowana, jeśli poda się również miesiąc.

    Jeśli poda się liczbę, lecz bieżący dzień nie jest podany w wierszu polecenia, to aktualna data nie jest podświetlana.

    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