[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] '''gcal''' ist ein mächtiges Kalenderprogramm für das Terminal und Teil des [wikipedia:GNU-Projekt: GNU-Projekts]. Mit diesem Programm lassen sich Kalender berechnen, erstellen und ausgeben oder drucken. Diese werden für einen Monat, drei Monate oder ein ganzes Jahr angezeigt. Neben dem heute gebräuchlichen [wikipedia:Gregorianischer Kalender: Gregorianischen Kalender] kann gcal Daten auch im [wikipedia:Julianischer Kalender: Julianischen Kalender] erstellen. Es lässt sich als [wikipedia:Ewiger_Kalender: immerwährender Kalender] für Feiertage aus aller Welt verwenden. Es bietet eine vielfältig konfigurierbare Terminverwaltung, die für Erinnerungsfunktionen nutzbar ist. Gcal kann verschiedene astronomische Daten zu Sonne und Mond an jedem Ort der Welt berechnen. Gcal unterstützt andere Kalendersysteme, zum Beispiel die chinesischen und japanischen Kalender, den hebräischen oder den bürgerlichen islamischen Kalender. = Installation = gcal ist im gleichnamigen Paket enthalten, welches standardmäßig in den [:Paketquellen:] vorhanden ist und folgendermaßen installiert[1] werden kann: {{{#!vorlage Paketinstallation gcal, universe }}} = Anwendung = Die Syntax des Befehls im Terminal [3] sieht folgendermaßen aus: {{{#!vorlage Befehl gcal [[Option...] [%Datum] [@Datei...]] [Befehl] }}} == Jahres- bzw. Monatskalender == Wird gcal ohne Optionen aufgerufen, erscheint eine Übersicht des aktuellen Monats. {{{#!vorlage Befehl gcal }}} {{{ März 2021 Sonntag 7<14>21 28 Montag 1 8 15 22 29 Dienstag 2 9 16 23 30 Mittwoch 3 10 17 24 31 Donnerstag 4 11 18 25 Freitag 5 12 19 26 Samstag 6 13 20 27 }}} Durch die Wahl verschiedener Optionen kann die Darstellung angepasst werden {{{#!vorlage Tabelle Befehl Ergebnis +++ `gcal -K` mit Anzeige der Kalenderwoche +++ `gcal [YYYY]` Kalender eines beliebigen Jahres +++ `gcal -b2` Verteilung der Monatskästchen in zwei Blöcken +++ `gcal 2-7 [Feb-Jul]` Anzeige für die Monate Februar bis Juli +++ `gcal .` Anzeige für den aktuellen Monat mit dem vergangenen und folgenden +++ `gcal .+` Anzeige des aktuellen Monats und der beiden folgenden +++ `gcal :` die kommenden zwölf Monate werden angezeigt +++ `gcal 11/2021-2/2022` Anzeige der Monate von November 2021 bis Februar 2022 +++ `gcal --gregorian-reform=10002,12,31,31 %19171107` Anzeige des 7. Novembers 1917 im julianischen Kalender (=Beginn der Oktober-Revolution in Russland) }}} == Listen von Feiertagen und astronomischen Ereignissen == gcal kann Listen von Feiertage aus verschiedenen Religionen bzw. Kulturkreisen oder Ländern erzeugen. Die folgenden Optionen können jeweils um eine beliebige Jahreszahl oder anderen Angaben zum gewünschten Zeitraum ergänzt werden, z.B. `.+`. {{{#!vorlage Tabelle Befehl Ergebnis +++ `gcal -n --astronomical-holidays` Mondphasen des aktuellen Jahres +++ `gcal -n --orthodox-old-holidays` Russisch-Orthodoxe Festtage im aktuellen Jahr +++ `gcal -N -qDE_NW` Staatliche Feiertage in Nordrhein-Westfalen }}} Daneben sind viele andere Festtags- und Kalendersysteme abrufbar, vgl. `gcal --hh` oder das [https://www.gnu.org/software/gcal/manual/gcal.html Manual] {en}. == Eigene Termine und Informationen verwalten == In der Profildatei `~/.gcalrc` können personalisierte Angaben und Informationen hinterlegt werden. Daten können nach dem Muster `[YYYYMMDD]` eingetragen werden. Dabei stehen `0000` für jedes Jahr, `00` für jeden Monat, bzw. jeden Tag. `9`, bzw. `99` und `999` stehen für den letzten Tag der Woche, des Monats oder des Jahres. {{{#!vorlage Tabelle Datumsangabe Bedeutung +++ `20210401` Eintrag für den 01.04.2021, z.B. Termin +++ `000000wed` Eintrag für jeden Mittwoch, z.B. Routineaufgaben +++ `00000921` jedes Jahr am 21. September, z.B. Geburtstag +++ `000003Sun9` letzter Sonntag im März, z.B. Umstellung Sommerzeit +++ `0000299` letzter Tag im Februar, unterscheidet sich in Schaltjahren +++ `20210401#15` vom 1. bis 15. April 2021 +++ `0*d1#999 %iMar22#Apr23 %r` vom 22.3. bis 23.4. außer Sa/So, z.B. Praktikum/Projekt +++ `0` Eintrag für jeden Tag (in jedem Monat/Jahr), z.B. für die tägliche Abfrage von astronomischen Daten }}} Nach der Datumsangabe folgt, durch Leerzeichen getrennt, die Information zum jeweiligen Termin. Die Informationen aus `~/.gcalrc` für heute werden aufgerufen mit `gcal -c`, für den morgigen Tag mit `gcal -t`. Der Abruf für Zeiträume ist möglich, z.B. mit `gcal -c .+`, und kann mit anderen Abfragen kombiniert werden z.B. `gcal -N -qDE_NW -c April`. Angaben können in unterschiedlichen Dateien (resource files) abgelegt und einzeln oder kombiniert abgerufen werden. {{{#!vorlage Befehl gcal -N -qDE_NW -f Termine.rc+Geburtstag.rc .+ }}} == Angaben zu Sonne und Mond == In `~/.gcalrc` können geografische Angaben hinterlegt werden, um Auf- und Untergangszeiten von Sonne und Mond zu bestimmen. {{{ ;Geo-Koordinaten von Berlin 52.518611°, 13.408333° 0 a) Sonnenaufgang %o+52.52+013.41,+60  (MEZ) 0 b) Sonnenuntergang %s+52.52+013.41,+60  (MEZ) 0 c) Mondaufgang %(+52.52+013.41,+60  (MEZ) 0 d) Monduntergang %)+52.52+013.41,+60  (MEZ) 0 e) Mondphase %>03*O %Z }}} Die Zeitangaben erfolgen in Weltzeit. Für Mitteleuropa sind 60 Minuten hinzuzufügen (`+60`), während der Sommerzeit sind es 120 Minuten (`+120`). Eine übersichtliche Darstellung des Kalenderblatts für morgen ist abrufbar z.B. mit `gcal -AExt -qDE_NW --moonimage-lines=10`. == Problembehebung == In Version 3.6.3 ([:18.04:]) sind die deutschsprachigen Feiertags- und Monatsnamen unvollständig und zum Teil falsch übersetzt und die hier üblichen Datumskonventionen (Wochenbeginn, Zählung der Kalenderwochen) werden nicht automatisch unterstützt. In 4.1. ([:20.04:]) ist das behoben. = Links = * [https://www.gnu.org/software/gcal/manual/gcal.html Gcal 4.1 (Handbuch)] {en} * [http://www.basicallytech.com/blog/archive/97/The-many-uses-of-gcal/ The many uses of gcal] {en} * [https://mostlymaths.net/2010/04/gcal-ultra-powerful-command-line-gnu.html/ Mostly Maths] {en} #tag: Shell, Programmierung, Büro