This is Info file de/gcal.info, produced by Makeinfo-1.64 from the
input file de/gcal.texi.

START-INFO-DIR-ENTRY
* Gcal: (gcal).              Das GNU Kalenderprogramm.
END-INFO-DIR-ENTRY

Diese Datei beschreibt Gcal, ein Programm um Kalender auszugeben.  Gcal
gibt Monatskalender und Jahreskalender, ewige Feiertagslisten sowie
Terminwarnungslisten auf viele verschiedene Arten und Weisen aus.  Es
berücksichtigt diejenigen Daten korrekt, welche übergangen wurden,
als der derzeitig gültige Gregorianische Kalender den vormals gültigen
Julianischen Kalender ablöste.

Copyright (C) 1994, 1995, 1996 Thomas Esken

Das ist die erste Ausgabe der Gcal Dokumentation.

Hiermit wird die Erlaubnis erteilt, wortgetreue Kopien dieses Handbuchs
zu erstellen und zu vertreiben, sofern alle gemachten Kopien mit dem
Copyrightvermerk und diesem Genehmigungsvermerk ausgestattet sind und
vorgenannte Vermerke erhalten bleiben.

Hiermit wird die Erlaubnis erteilt, veränderte Kopien dieses Handbuchs
wie unter den Bedingungen für wortgetreue Kopien zu erstellen und zu
vertreiben, sofern die ausgeführten Arbeiten in Ableitung und
Gesamtheit innerhalb der Bestimmungen eines Genehmigungvermerks liegen
und zudem mit diesem ausgestattet sind, welcher mit diesem hier
identisch ist.

Hiermit wird die Erlaubnis erteilt, wie unter den vorgenannten
Bedingungen für veränderte Versionen Übersetzungen dieses Handbuchs
in eine andere Sprache zu erstellen und zu vertreiben, mit der
Ausnahme, daß dieser Genehmigungsvermerk in einer Übersetzung
angegeben sein darf, welche von der Free Software Foundation gebilligt
wird.

Jedwede Vorschläge, Verbesserungen, Erweiterungen, Fehlerberichte,
Geld- und Sachspenden, Programmieraufträge usw. sind stets willkommen.
Bitte senden Sie diese direkt an meine Email Adresse.  Wenn Sie dieses
Werkzeug mögen, so würde ich mich sehr über eine Postkarte von Ihnen
freuen!

                                \\\_''/'
-------------------------oOO    (/o-o\)    OOo-------------------------
Thomas Esken                o  (.  "  .)  o   Internet :
Im Hagenfeld 84              \___) ~ (___/      (esken@uni-muenster.de)
D-48147 Muenster; GERMANY                     Phone    : +49 251 232585


File: gcal.info,  Node: Kommandos,  Prev: Datummodifizierer,  Up: Kommandozeilenargumente

Kommandos
---------

* Menu:

* Einfache Kommandos::       Wie ein Einfaches Kommando benutzt wird.
* 3-Monatsmodus Kommandos::  Wie ein 3-Monatsmodus Kommando benutzt wird.
* Listen von Kommandos::     Wie eine Liste von Kommandos benutzt wird.
* Bereiche von Kommandos::   Wie ein Bereich von Kommandos benutzt wird.

Die Kommandos steuern die Zeiträume, die von Gcal berücksichtigt
werden.  Kommandos können in vier Hauptklassen eingeteilt werden,
nämlich "einzelne" Kommandos, spezielle "3-Monatsmodus" Kommandos,
"Listen" von Kommandos und "Bereiche" von Kommandos.  Einzelne und
spezielle 3-Monatsmodus Kommandos erzeugen nur *ein* Kalenderblatt,
Listen oder Bereiche von Kommandos erzeugen *mehr als ein*
Kalenderblatt je Programmlauf.  Wenn eine Liste von Kommandos gegeben
ist, so arbeitet Gcal jedes einzelne Kommando dieser Liste sequentiell
ab, eins nach dem anderen.  Ein Bereich von Kommandos wird von Gcal
zuerst in einzelne Kommandos expandiert, sodann arbeitet Gcal jedes
einzelne Kommando, welches nach der internen Expansion erzeugt wurde,
sequentiell ab.

Um die verwendete Notation im nachstehenden Text zu verstehen,
bezeichnet MM entweder eine Zahl, einen Monatsnamen oder eines der
speziellen 3-Monatsmodus Kommandos `.', `..', `.+' und `.-'.  Es
können weder Listen noch Bereiche von Monaten oder Jahren erzeugt
werden falls ein spezielles 3-Monatsmodus Kommando angegeben wurde.

Der Bereich von MM ist gültig von 1 bis 12 oder gültig von Januar bis
Dezember (beide Notationen dürfen gemischt verwendet werden).
Monatsnamen dürfen bis auf ihre ersten drei Zeichen abgekürzt werden.
JJJJ ist eine Zahl.  Der Bereich von JJJJ ist gültig von 1 bis 9999.
Ein Bereich (MM-MM JJJJ+JJJJ ...) besteht aus genau zwei Elementen.
Eine Liste (MM,...,MM JJJJ;...;JJJJ ...) muß mindestens zwei Elemente
enthalten, und darf unbegrenzt viele Elemente enthalten.

Hier ist eine Aufstellung aller benutzten Bereichs-, Listen- und
sonstigen Kommandotrennzeichen:

       1. Das `-' Zeichen ist das *Bereich von Monaten* Trennzeichen.

       2. Das `,' Zeichen ist das *Liste von Monaten* Trennzeichen.

       3. Das `+' Zeichen ist das *Bereich von Jahren* Trennzeichen.

       4. Das `;' Zeichen ist das *Liste von Jahren* Trennzeichen.

       5. Das `/' Zeichen ist das *Monat des Jahres* Trennzeichen.

       6. Das `:' Zeichen ist das *Fiskaljahr* Trennzeichen.


File: gcal.info,  Node: Einfache Kommandos,  Next: 3-Monatsmodus Kommandos,  Prev: Kommandos,  Up: Kommandos

Einfache Kommandos
..................

`KEINES'
     Aktueller Monat des aktuellen Jahres, wird weiterhin als
     "Einzelmonatsmodus" bezeichnet.

`MONATSNAME'
     Angegebener Monat des aktuellen Jahres, z.B.:

          gcal mai
          gcal OKTOBER
          gcal ja

`JJJJ'
     Angegebenes Jahr, wird weiterhin als "Einzeljahresmodus"
     bezeichnet, z.B.:

          gcal 1992

     Aber es gibt eine Ausnahme von dieser generellen Regel.  Wenn die
     angegebene Jahreszahl kleiner oder gleich zwölf ist, so nimmt
     Gcal an, daß ein angegebener Monat des aktuellen Jahres
     gewünscht ist.  Wenn ein angegebenes Jahr kleiner oder gleich
     zwölf gewünscht wird, so sollte Gcal entweder so

          gcal 1:6

     oder so

          gcal 6+6

     aufgerufen werden, um beispielsweise das Jahr sechs nach Christus
     zu erhalten.

`MM JJJJ'
`MM/JJJJ'
     Angegebener Monat eines angegebenen Jahres, z.B.:

          gcal 9 1992
          gcal 9/1992
          gcal Nov 1777
          gcal Nov/1777

`:'
     Einzelnes Fiskaljahr (abweichendes Wirtschaftsjahr), beginnend im
     *aktuellen Monat* des *aktuellen Jahres* und endend im Monat
     *aktueller Monat*-1 des *aktuellen Jahres*+1, wird weiterhin als
     "implizites Fiskaljahr" bezeichnet, z.B.:

          gcal :

`MM:'
     Einzelnes Fiskaljahr, beginnend im Monat MM des *aktuellen Jahres*
     und endend im Monat MM-1 des *aktuellen Jahres*+1, wird weiterhin
     als "explizites Fiskaljahr" bezeichnet, z.B.:

          gcal 6:
          gcal feb:
          gcal NOVEMBER:

`:JJJJ'
     Einzelnes Fiskaljahr, beginnend im aktuellen Monat des Jahres JJJJ
     und endend im Monat *aktueller Monat*-1 des Jahres JJJJ+1, wird
     weiterhin auch als "explizites Fiskaljahr" bezeichnet, z.B.:

          gcal :1999

`MM:JJJJ'
     Einzelnes Fiskaljahr, beginnend im Monat MM des Jahres JJJJ und
     endend im Monat MM-1 des Jahres JJJJ+1, wird weiterhin auch als
     "explizites Fiskaljahr" bezeichnet, z.B.:

          gcal 7:1999
          gcal okt:1992
          gcal Februar:1777


File: gcal.info,  Node: 3-Monatsmodus Kommandos,  Next: Listen von Kommandos,  Prev: Einfache Kommandos,  Up: Kommandos

3-Monatsmodus Kommandos
.......................

`.'
     Vorheriger, aktueller und nächster Monat des laufenden Jahres,
     z.B.:

          gcal .

`. JJJJ'
     Vorheriger, aktueller und nächster Monat des angegebenen Jahres,
     z.B.:

          gcal . 1992

`..'
     Aktuelles Quartal des laufenden Jahres, z.B.:

          gcal ..

`.. JJJJ'
     Aktuelles Quartal des angegebenen Jahres, z.B.:

          gcal .. 1992

`.+'
     Aktueller und die beiden nächsten Monate des laufenden Jahres,
     z.B.:

          gcal .+

`.+ JJJJ'
     Aktueller und die beiden nächsten Monate des angegebenen Jahres,
     z.B.:

          gcal .+ 1992

`.-'
     Aktueller und die beiden vorhergehenden Monate des laufenden
     Jahres, z.B.:

          gcal .-

`.- JJJJ'
     Aktueller und die beiden vorhergehenden Monate des angegebenen
     Jahres, z.B.:

          gcal .- 1992


File: gcal.info,  Node: Listen von Kommandos,  Next: Bereiche von Kommandos,  Prev: 3-Monatsmodus Kommandos,  Up: Kommandos

Listen von Kommandos
....................

`MM,...,MM'
     Liste von angegebenen Monaten des aktuellen Jahres, z.B.:

          gcal 1,5,12
          gcal 3,1,5,3
          gcal juni,9,jan

`MM/JJJJ,...,MM/JJJJ'
     Liste von angegebenen Monaten in angegebenen Jahren, z.B.:

          gcal 1/1992,5,12/2001
          gcal juni/1991,9/1801,jan

`MM,...,MM JJJJ'
     Liste von angegebenen Monaten eines angegebenen Jahres, z.B.:

          gcal 3,7 1999
          gcal 1,dez,juli 1777

`JJJJ;...;JJJJ'
     Liste von angegebenen Jahren, z.B.:

          gcal 1992;1777;1899

`MM:JJJJ;...;MM:JJJJ'
     Liste von angegebenen Fiskaljahren, z.B.:

          gcal 7:1999;8:1992;April:3

*Andere gültige Listen:*

`MM,MM/JJJJ,...'
     Gemischte Monatsliste bestehend aus: `MM MM/JJJJ'

          gcal 6,8,3/1999,feb/3,januar

`MM:;MM:JJJJ,...'
     Gemischte Liste von Fiskaljahren von aktuellen/angegebenen Jahren
     bestehend aus: `MM: :JJJJ MM:JJJJ JJJJ'

          gcal 3:;1994;februar:1999;:1777;JAN:

`MM:;MM:;...'
     Liste von Fiskaljahren des aktuellen Jahres bestehend aus: `MM:'

          gcal 3:;august:;DEZ:


File: gcal.info,  Node: Bereiche von Kommandos,  Prev: Listen von Kommandos,  Up: Kommandos

Bereiche von Kommandos
......................

`MM-MM'
     Bereich von angegebenen Monaten des aktuellen Jahres, z.B.:

          gcal 3-7
          gcal 11-8
          gcal MAI-dez
          gcal 12-aug

`MM/JJJJ-MM/JJJJ'
     Bereich von angegebenen Monaten von angegebenen Jahren, z.B.:

          gcal 3/1991-juli/1992
          gcal dez/1994-3
          gcal sep-dez/2000

`MM-MM JJJJ'
     Bereich von angegebenen Monaten eines angegebenen Jahres, z.B.:

          gcal 3-7 1999
          gcal nov-3 1777
          gcal aug-dez 1992

`MM JJJJ-JJJJ'
`MM/JJJJ-JJJJ'
     Bereich eines angegebenen Monats von angegebenen Jahren, z.B.:

          gcal AUGUST 1494-1497
          gcal 3/1993-1999
          gcal nov/3-1777

`JJJJ+JJJJ'
     Bereich von angegebenen Jahren, z.B.:

          gcal 1992+1994

`MM:JJJJ+MM:JJJJ'
     Bereich von angegebenen Fiskaljahren, z.B.:

          gcal 7:1999+8:1992
          gcal aug:1992+juli:1999


File: gcal.info,  Node: Die GCAL Umgebungsvariable,  Prev: Kommandozeilenargumente,  Up: Aufruf von Gcal

Die `GCAL' Umgebungsvariable
============================

In der Umgebungsvariable `GCAL' können Grundeinstellungen zu Optionen
für Gcal gespeichert werden (*note GCAL: Umgebungsvariablen.).  Diese
Optionen werden bei Programmstart zuerst interpretiert und einige von
ihnen können durch explizit gegebene Kommandozeilenargumente oder
Werte, die in der Antwortdatei `@DATEI' vorhanden sind, überschrieben
werden.  *Note Kommandozeilenargumente::, und *Note Antwortdatei::.

Zum Beispiel

   * für *sh*:

          GCAL="-i @farbe -b 3"; export GCAL

   * für *csh*:

          setenv GCAL "-i @farbe -b 3"

   * für *MS-DOS*:

          set GCAL=-i @farbe -b 3

Unter Vax/VMS lautet der Name der Umgebungsvariable `GCAL_OPT', um
einen Konflikt mit dem gesetzten Symbol `GCAL', welches zum Aufruf des
Programms dient, zu vermeiden.

Zum Beispiel

   * für *VMS*:

          define GCAL_OPT "-i @farbe -b 3"


File: gcal.info,  Node: Ewige Feiertage,  Next: Terminwarnungen,  Prev: Aufruf von Gcal,  Up: Top

Ewige Feiertage
***************

Die *ewige Feiertagsliste* wird nur für Jahre nach A.D.463 erzeugt.
Sie kann auf mehrere Arten und Weisen ausgegeben werden:

Wenn Gcal ohne explizites (Fiskal) Datum mit dem *ewige Feiertagsliste*
Argument gestartet wird (*note `--holiday-list[=long|short]': Kalender
Optionen.), z.B.:

     gcal --holiday-list
     gcal -n
     gcal -n :

so gibt Gcal ohne einen vorangehenden Kalender alle diejenigen
Feiertage aus der ewigen Feiertagsliste aus, die sich auf das aktuelle
Jahr bzw. Fiskaljahr beziehen.

Wenn Gcal mit dem *ewige Feiertagsliste* Argument und einem Monat (plus
eines Jahres) gestartet wird, z.B.:

     gcal --holiday-list juli
     gcal -n juli
     gcal -n 7 1993
     gcal -n 7/1993

so gibt Gcal einen Monatskalender des angegebenen Monats (des Jahres)
und nachfolgend alle diejenigen Feiertage aus der ewigen Feiertagsliste
aus, die sich auf den angegebenen Monat (des angegebenen Jahres)
beziehen.

Wenn Gcal mit dem *ewige Feiertagsliste* Argument und einem einfachen
Jahr oder einem Fiskaljahr (abweichendes Wirtschaftsjahr) gestartet
wird, z.B.:

     gcal --holiday-list 1993
     gcal -n 1993
     gcal -n juli:
     gcal -n :1993
     gcal -n 7:1993

so gibt Gcal einen Jahreskalender des angegebenen Jahres und nachfolgend
alle diejenigen Feiertage aus der ewigen Feiertagsliste aus, die sich
auf das angegebene Jahr bzw. Fiskaljahr beziehen.

Wenn Gcal mit dem *ewige Feiertagsliste* Argument und einem der
speziellen 3-Monatsmodus Kommandos gestartet wird (*note `. JJJJ':
3-Monatsmodus Kommandos.), z.B.:

     gcal --holiday-list .
     gcal -n .
     gcal -n ..
     gcal -n .+
     gcal -n .-

so gibt Gcal die bezogenen 3 Monate im festen Layout/Stil eines
Jahreskalenders aus sowie nachfolgend alle diejenigen Feiertage aus der
ewigen Feiertagsliste aus, die sich auf diese Monate beziehen.

Wenn Gcal mit dem *ewige Feiertagsliste* Argument und einer *Liste*
oder einem *Bereich* von Kommandos gestartet wird, so werden
entsprechende Folgen von ewigen Feiertagslisten produziert.  *Note
`MM,...,MM': Listen von Kommandos, und *Note `MM-MM': Bereiche von
Kommandos, für weitere Details.


File: gcal.info,  Node: Terminwarnungen,  Next: Heutiger Kalender,  Prev: Ewige Feiertage,  Up: Top

Terminwarnungen
***************

* Menu:

* Ressourcendatei::           Wie eine Ressourcendatei benutzt wird.
* Ressourcendateibeispiele::  Beispiele zu Einträgen in der Ressourcendatei.

Dieses Kapitel beschreibt wie Gcal für *Terminwarnungszwecke* benutzt
werden kann.  Dazu darf eine Gcal spezifische Ressourcendatei erzeugt
werden, welche Einträge zur Terminwarnung enthält (*note
Ressourcendatei::.).

Jedesmal wenn Gcal im einfachen Einzelmonatsmodus ausgeführt wird,
d.h. beim Aufruf von Gcal wurde in der Kommandozeile weder ein
expliziter Monat noch ein explizites Jahr bzw. Fiskaljahr angegeben,
aber das *Terminwarnung* Argument vorgefunden wird, z.B.:

     gcal --list-of-fixed-dates
     gcal -c

so durchsucht Gcal die Ressourcendatei nach Daten und verarbeitet genau
solche, die sich auf das aktuelle (==heutige) Datum beziehen.  Sodann
gibt Gcal ohne einen vorangehenden Kalender alle diejenigen
Terminwarnungen aus der Ressourcendatei aus, die sich auf den aktuellen
Tag (Woche/Monat/Jahr) des aktuellen Jahres beziehen.

Einige weitere Beispiele hierzu:

     gcal -ce
     gcal -cw-
     gcal -c-m
     gcal -c-y-
     gcal -jcb -c-et
     gcal -cey-
     gcal -jc -cey

Die Liste der Terminwarnungen kann auf mehrere Arten und Weisen
ausgegeben werden:

Wenn Gcal mit dem *Terminwarnung* Argument und/oder einem Monat und/oder
einem expliziten Jahr bzw. Fiskaljahr gestartet wird; bzw. mit einem der
speziellen 3-Monatsmodus Kommandos, z.B.:

     gcal -c juli
     gcal -ce 7 1994
     gcal -c-y 7/1994
     gcal -c 7:1993
     gcal -c 1993
     gcal -c .
     gcal -c .+

so gibt Gcal einen (drei) Monats-/ Jahreskalender des angegebenen bzw.
aktuellen Monats-/ Jahres aus und nachfolgend alle diejenigen
Terminwarnungen aus der Ressourcendatei, die sich auf den angegebenen
Zeitraum beziehen; das Warnungsniveau ist wie bei der `-cy' Option,
wenn sich der Warnungszeitraum auf ein Jahr bzw. Fiskaljahr bezieht
oder auf eine 3-Monatsperiode, bzw.  wie bei der `-cm' Option, wenn
sich der Warnungszeitraum auf einen Monat bezieht.

Wenn Gcal ohne explizites Datum mit dem *Terminwarnung* Argument *in
Verbindung mit* dem *ewige Feiertagsliste* Argument gestartet wird,
z.B.:

     gcal -c -n
     gcal -Cm -n
     gcal -Cl1224 -n
     gcal -cl3+ -n

so gibt Gcal ohne einen vorangehenden Kalender alle diejenigen
Terminwarnungen aus der Ressourcendatei aus, die sich auf den
angegebenen Warnungszeitraum im aktuellen Jahr beziehen, und
nachfolgend alle diejenigen Feiertage aus der ewigen Feiertagsliste
aus, die sich auf das gesamte aktuelle Jahr beziehen.  Für weitere
Details zur *ewigen Feiertagsliste*, siehe *Note Ewige Feiertage::.

*Anmerkung zu vorhergehenden Beispielen:*

Falls das *Standard/Spezielle Kalenderformat* Argument oder das
*Starttag der Woche* Argument (ausgenommen der `--starting-day=today'
bzw. `--starting-day=0' Option) zudem mit vorgefunden wird, z.B.:

     gcal -c -n -i
     gcal -c -i-
     gcal -n -i- :
     gcal -n -s Sonntag

so gibt Gcal einen Monats-/ Jahreskalender vor jeder anderen
angeforderten Liste aus!  *Note `--type=special|standard': Kalender
Optionen, und *Note `--starting-day[=ARGUMENT]': Kalender Optionen,
für mehr Informationen.

Jedesmal wenn Gcal im einfachen Einzeljahresmodus ausgeführt wird,
d.h. beim Aufruf von Gcal wurde in der Kommandozeile weder ein
expliziter Monat noch ein explizites Jahr bzw. Fiskaljahr angegeben,
aber das *Terminwarnung* Argument (evtl. mit Modifizierern) und das
*Anzahl der Monatsblöcke* Argument vorgefunden wird (*note
`--blocks=ANZAHL': Kalender Optionen.), z.B.:

     gcal -c --blocks=3
     gcal -C-em -b 3
     gcal -c-t -b 6 -jc

so durchsucht Gcal die Ressourcendatei nach Daten und verarbeitet genau
jene, die sich auf das aktuelle (==heutige) Datum beziehen.  Sodann
gibt Gcal einen vorangehenden Jahreskalender und alle diejenigen
Terminwarnungen aus der Ressourcendatei aus, die sich auf den aktuellen
Tag (Woche/Monat/Jahr) des aktuellen Jahres beziehen.

Es können aber auch Daten von vergangenen, aktuellen oder zukünftigen
Monaten/Jahren verarbeitet werden.  Das geht einerseits, indem die
`%DATUM' Option entsprechend verwendet wird (*note
Datummodifizierer::.), oder andererseits, indem ein Kommando bzw.  eine
*Liste* oder ein *Bereich* von Kommandos verwendet wird.

Zum Beispiel:

`gcal -c -n- 1993'
     Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich
     auf das gesamte Jahr 1993 beziehen, sowie der ewigen
     Feiertagsliste in absteigender Reihenfolge, welche sich auch auf
     das gesamte Jahr 1993 bezieht; das Warnungsniveau ist wie bei der
     `-cy' Option.

`gcal -c- juli:1993'
     Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf
     das Fiskaljahr - beginnend im Monat Juli 1993 und endend im Monat
     Juni 1994 - beziehen; das Warnungsniveau ist wie bei der `-cy'
     Option.

`gcal -ce juli 1993'
     Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich
     auf den Monat Juli 1993 beziehen, einschließlich aller ewigen
     Feiertage dieses Zeitraums, welche in diese Liste eingefügt
     werden; das Warnungsniveau ist wie bei der `-cm' Option.

`gcal -c-e -n 1993+1996'
     Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf
     die gesamten Jahre 1993, 1994, 1995 und 1996 beziehen (Jahr für
     Jahr in Folge), einschließlich aller ewigen Feiertage dieses
     Zeitraums, welche in diese Liste eingefügt werden, sowie der
     ewigen Feiertagsliste in aufsteigender Reihenfolge, welche sich
     ebenfalls auf diese Jahre bezieht; das Warnungsniveau ist wie bei
     der `-cy' Option.


File: gcal.info,  Node: Ressourcendatei,  Next: Ressourcendateibeispiele,  Prev: Terminwarnungen,  Up: Terminwarnungen

Ressourcendatei
===============

* Menu:

* Struktur einer Ressourcendatei::  Wie wird eine Ressourcendatei erstellt?
* Datumteil einer Zeile::           Wie muß der Datumteil aussehen?
* Weitere Datumteil-Attribute::     Was sind weitere Attribute vom Datumteil?
* Textteil einer Zeile::            Wie muß der Textteil aussehen?
* Zeile kommentieren::              Wie eine Zeile kommentiert werden kann.
* Include Anweisungen::             Was sind Include Anweisungen?
* Spezielle Textmakros::            Was sind Spezielle Textmakros?
* Datumvariablen::                  Wie Datumvariablen benutzt werden können.
* Textvariablen::                   Wie Textvariablen benutzt werden können.

Dieser Textteil beschreibt wie eine "Ressourcendatei", welche Einträge
zur Terminwarnung enthält, benutzt wird.  Der Name der
Standard-Ressourcendatei ist `~/.gcalrc' (1).

Gcal benutzt einen speziellen Datei-Suchmechanismus:

  1. Das Gcal Programm erwartet die Standard-Ressourcendatei im
     Dateiverzeichnis, welches in der Umgebungsvariable `HOME'
     angegeben ist.  Falls die Umgebungsvariable `HOME' weder definiert
     noch gesetzt ist, so übergeht Gcal diesen Schritt.  *Note HOME:
     Umgebungsvariablen.

  2. Sollte vorherige Aktion versagt haben, so durchsucht Gcal
     diejenigen Dateiverzeichnisse nach der Standard-Ressourcendatei,
     welche in der Umgebungsvariable `GCALPATH' (*note GCALPATH:
     Umgebungsvariablen.) angegeben sind.  Die Umgebungsvariable
     `GCALPATH' enthält eine durch `:' (2) Doppelpunkt getrennte Liste
     von Dateiverzeichnissen.  Falls eine solche Umgebungsvariable
     weder definiert noch gesetzt ist, so übergeht Gcal diesen Schritt.

  3. Sollte vorherige Aktion versagt haben, so inspiziert Gcal das
     *Benutzer-Datenverzeichnis* (normalerweise `$HOME/share/gcal')
     nach der Standard-Ressourcendatei.  Dieses Verzeichnis ist ein
     Dateiverzeichnis relativ zum `HOME' Dateiverzeichnis.  Falls eine
     `GCAL_USR_DATADIR' Umgebungsvariable gesetzt ist, so wird Gcal den
     Inhalt dieser Umgebungsvariable an den Inhalt der `HOME'
     Umgebungsvariable anfügen, und zuerst diesen
     Dateiverzeichnisnamen anstelle des beim Kompilationsvorgangs
     eingebrannten Dateiverzeichnisnamens benutzen (*note
     GCAL_USR_DATADIR: Umgebungsvariablen.).  Falls die
     Umgebungsvariable `HOME' weder definiert noch gesetzt ist, so
     übergeht Gcal diesen Schritt.

  4. Sollten alle bisherigen Aktionen versagt haben, so inspiziert Gcal
     das *System-Datenverzeichnis* (normalerweise
     `/usr/local/share/gcal' oder `$(prefix)/share/gcal') nach der
     Standard-Ressourcendatei.  Dieses Verzeichnis ist ein
     Dateiverzeichnis absolut zum *Wurzel*/*$(prefix)*
     Dateiverzeichnis.  Falls eine `GCAL_SYS_DATADIR' Umgebungsvariable
     gesetzt ist, so wird Gcal zuerst diesen Dateiverzeichnisnamen
     anstelle des beim Kompilationsvorgang eingebrannten
     Dateiverzeichnisnamens benutzen (*note GCAL_SYS_DATADIR:
     Umgebungsvariablen.).

Falls die Standard-Ressourcendatei nicht während der Schritte 1...4 des
Datei-Suchmechanismus' aufgefunden wurde, so werden keinerlei
Terminwarnungen erzeugt!

Wenn ein `-f|F DATEINAME[+...]' bzw.  `--resource-file=DATEINAME'
Kommandozeilenargument vorgefunden wird, so wird eine Datei DATEINAME
anstelle der Standard-Ressourcendatei als Ressourcendatei benutzt.
*Note `--resource-file=DATEINAME': Terminwarnung Optionen.

Ein "erweiterter Dateiname" enthält ein oder mehrere `/' (3) Zeichen
und bezeichnet eine Datei, deren Zugriffspfad entweder vom
Wurzeldateiverzeichnis (root-directory) aus fest vorgegeben ist, wie
z.B.  `/foo/bar/file', oder vom aktuellen Dateiverzeichnis aus fest
vorgegeben ist, wie z.B. `./bar/file' oder `../bar/file'.  Falls
DATEINAME ein erweiterter Dateiname ist:

     Wenn DATEINAME vorgefunden wird, so wird Gcal diese Datei
     auswerten.
     Wenn DATEINAME nicht vorgefunden wird, so wird Gcal diese Datei
     nicht auswerten.

Ein "einfacher Dateiname" enthält keinen Verweis auf einen
Zugriffspfad, der entweder vom Wurzeldateiverzeichnis oder vom
aktuellen Dateiverzeichnis aus fest vorgegeben ist, wie z.B. `file'
oder `bar/file'.  Falls DATEINAME ein einfacher Dateiname ist:

     Gcal wird versuchen, die Datei DATEINAME unter Zuhilfenahme des
     zuvor erklärten Datei-Suchmechanismus' aufzufinden.

  ---------- Footnotes ----------

  (1)  Unter MS-DOS, OS/2 und einigen anderen Betriebssystemen ist der
Name der Standard-Ressourcendatei `~/gcalrc'.

  (2)  Unter MS-DOS, OS/2 und einigen anderen Betriebssystemen wird ein
anderes Zeichen verwendet, z.B. `;' unter MS-DOS und OS/2.

  (3)  Betriebssysteme wie z.B. MS-DOS oder OS/2 verwenden das `\'
Zeichen, mit dem ein Dateiverzeichnis von einem Dateinamen separiert
wird.


File: gcal.info,  Node: Struktur einer Ressourcendatei,  Next: Datumteil einer Zeile,  Prev: Ressourcendatei,  Up: Ressourcendatei

Struktur einer Ressourcendatei
------------------------------

Eine Gcal Ressourcendatei ist zunächst einmal eine reine ASCII
Textdatei, die mit einem beliebigen Texteditor oder durch Umlenkung des
*Standardausgabe-Gerätekanals* in eine Datei erzeugt werden kann, z.B.:

     $ echo '19930217 Text'>> Ressourcendatei RET

Jede Ressourcendatei muß eine besondere, aber einfache Zeilenstruktur
aufweisen, so daß Gcal auch in der Lage ist, deren Inhalt zu
interpretieren.  Jeder Termineintrag, welcher in einer Zeile einer
Ressourcendatei vorgenommen wurde, muß in zwei Teile aufgespalten
werden, nämlich einerseits in einen *Datumteil* und andererseits in
einen optionalen *Textteil*, welche durch mindestens *ein* "whitespace"
Trennzeichen (Tab, Space, Form-Feed ...) voneinander abgetrennt werden
müssen.  Wird kein *Textteil* angegeben, so entfällt natürlich auch
die Angabe des zur Trennung dieser beiden Teile notwendigen
*whitespace* Zeichens.

Eine Zeile muß stets mit einem `\n' (Newline) Zeichen enden,
ausgenommen es ist die letzte Zeile in einer Ressourcendatei.  Die
maximale Länge einer Zeile ist allerdings begrenzt auf INT_MAX (1)
Zeichen.  Bei Umlenkung des *Standardausgabe-Gerätekanals* in eine
Datei wird der Zeile automatisch ein Newline Zeichen angefügt, bei
Benutzung von einem Texteditor normalerweise dann, wenn die
geschriebene Zeile mittels der RET Taste abgeschlossen wird.  Sollte
der verwendete Texteditor hinsichtlich der Wirkungsweise der RET Taste
und der Generierung des damit verbundenen Newline Zeichens nicht wie
angegeben arbeiten, so sollte der Texteditor in diese Betriebsart
versetzt werden.  Sollte das nicht möglich sein, so ist der verwendete
Texteditor für die Erzeugung von Gcal Ressourcendateien unbrauchbar!

Die Zeilenstruktur eines Termineintrags ist:

     DATUMTEIL [ *whitespace* TEXTTEIL ] *newline*

oder konkreter, z.B.:

     JJJJ[MM[TT|WWW[N]]] [ *whitespace* TEXT ] *newline*

oder noch konkreter, z.B.:

     19940217 Hallo, ich bin der Text!

Neben Einträgen zur Terminwarnung können noch weitere Einträge in
einer Ressourcendatei vorgenommen werden, wie:

Include Anweisungen...

     #include <DATEINAME>
     #include "DATEINAME"

Datumvariablenzuweisungen-/ operationen...

     DVAR=NICHTS
     DVAR=MMTT
     DVAR=MMWWWN
     DVAR=*dN[WWW]
     DVAR=*wN[WWW]
     DVAR=DVAR[[+|-]N[WWW]]
     DVAR++
     DVAR--
     DVAR+=N[WWW]
     DVAR-=N[WWW]

Textvariablenzuweisungen...

     TVAR=[TEXT]

Textvariablenreferenzen...

     TVAR

Textvariablenreferenzen zu Anfang einer Zeile der Gcal Ressourcendatei
dürfen allerdings nur dann verwendet werden, falls sichergestellt ist,
daß sich nach deren vollständiger Expansion eine gültige Zeile der
Gcal Ressourcendatei ergibt.

  ---------- Footnotes ----------

  (1)  Normalerweise entspricht das zum Beispiel auf einer 16-Bit
Maschinenarchitektur dem Wert 32.767 == (2^15)-1; auf einer 32-Bit
Maschinenarchitektur dem Wert 2.147.483.647 == (2^31)-1 usw.


File: gcal.info,  Node: Datumteil einer Zeile,  Next: Weitere Datumteil-Attribute,  Prev: Struktur einer Ressourcendatei,  Up: Ressourcendatei

Datumteil einer Zeile
---------------------

Die Struktur von einem "Datumteil" - welcher Gcal die Information gibt
wann ein Termin stattfindet - einer Zeile der Gcal Ressourcendatei ist

*Entweder*: `JJJJ[MM[TT|WWW[N]]]'

    `JJJJ'
          (4 Ziffern), ist das Jahr einschließlich des Jahrhunderts
          (Bereich 0000...9999).  Es sind führende Nullen anzugeben
          falls das Jahr kleiner 1000 ist und weitere Komponenten des
          Datumteils dem Jahr folgen.

    `MM'
          (2 Ziffern oder 3 Zeichen), ist der Monat (Bereich 00...12
          oder 99, bzw.  Jan, Feb...).  99 kodiert stets den letzten
          Monat eines Jahres (== Dezember). Es sind führende Nullen
          anzugeben falls der Monat kleiner 10 ist und weitere
          Komponenten des Datumteils dem Monat folgen.

    `TT'
          (2 Ziffern), ist der Tag (Bereich 00...31 oder 99).  99
          kodiert stets den letzten Tag eines Monats.  Es sind
          führende Nullen anzugeben falls der Tag kleiner 10 ist und
          weitere Komponenten des Datumteils dem Tag folgen.

    `WWW'
          (2...3 Zeichen), ist ein Wochentagsname im Kurzformat (Bereich
          Mon...Son).

    `N'
          (1 Ziffer), ist der N'te Wochentag WWW im Monat (Bereich
          1...5 oder 9).

             * N == 1...5
               N'ter WWW Wochentag im Monat.

             * N == 9
               Letzter WWW Wochentag im Monat.

*Oder*: `JJJJ*d|wN[WWW]'

    `JJJJ'
          (4 Ziffern), ist das Jahr einschließlich des Jahrhunderts
          (Bereich 0000...9999).  Es sind führende Nullen anzugeben
          falls das Jahr kleiner 1000 ist und weitere Komponenten des
          Datumteils dem Jahr folgen.

    `*d'
          (2 Zeichen), ist ein Bezug auf ein gewöhnliches Tagesdatum.

    `*w'
          (2 Zeichen), ist ein Bezug auf ein ISO-8601:1988 Wochendatum.

    `N'
          (1...3 Ziffern), ist der Wert in Tagen oder Wochen, an
          welchem der Termin auftritt.  99 in Verbindung mit einem
          Wochentagsnamen im Kurzformat kodiert stets den letzten
          Wochentag WWW eines Jahres.  999 in Verbindung mit `*d'
          kodiert stets den letzten Tag eines Jahres, also den 31'ten
          Dezember.  Falls das berechnete Datum nicht im Jahr auftritt,
          also außerhalb der Jahresgrenzen liegt, so wird die
          Terminwarnung unterdrückt.

    `WWW'
          (2...3 Zeichen), ist ein Wochentagsname im Kurzformat (Bereich
          Mon...Son).

*Oder*: `JJJJ@e|DVAR[[+|-]N]'

    `JJJJ'
          (4 Ziffern), ist das Jahr einschließlich des Jahrhunderts
          (Bereich 0000...9999).  Es sind führende Nullen anzugeben
          falls das Jahr kleiner 1000 ist und weitere Komponenten des
          Datumteils dem Jahr folgen.

    `@e'
          (2 Zeichen), ist ein Bezug auf das Datum des Ostersonntags.

    `@DVAR'
          (2 Zeichen), ist ein Bezug auf ein Datumvariable.

    `[+|-]N'
          (1...4 alphanumerische Zeichen), ist der optionale Versatz in
          Tagen, an welchem der Termin relativ zum Datum des
          Ostersonntags oder zum Datum der Datumvariablen auftritt.
          -999 kodiert stets den ersten Tag eines Jahres, also den
          1'ten Januar.  +999 oder 999 kodiert stets den letzten Tag
          eines Jahres, also den 31'ten Dezember.  Falls das berechnete
          Datum nicht im Jahr auftritt, also außerhalb der
          Jahresgrenzen liegt, so wird die Terminwarnung unterdrückt.

*Oder*: `JJJJ@e|DVAR[+|-]NWWW'

    `JJJJ'
          (4 Ziffern), ist das Jahr einschließlich des Jahrhunderts
          (Bereich 0000...9999).  Es sind führende Nullen anzugeben
          falls das Jahr kleiner 1000 ist und weitere Komponenten des
          Datumteils dem Jahr folgen.

    `@e'
          (2 Zeichen), ist ein Bezug auf das Datum des Ostersonntags.

    `@DVAR'
          (2 Zeichen), ist ein Bezug auf ein Datumvariable.

    `[+|-]NWWW'
          (3...7 alphanumerische Zeichen), ist der optionale Versatz in
          Wochentagen, an welchem der Termin relativ zum Datum des
          Ostersonntags oder zum Datum der Datumvariablen auftritt.
          -99 kodiert stets den ersten Wochentag WWW eines Jahres.  +99
          oder 99 kodiert stets den letzten Wochentag WWW eines Jahres.
          Falls das berechnete Datum nicht im Jahr auftritt, also
          außerhalb der Jahresgrenzen liegt, so wird die Terminwarnung
          unterdrückt.

*Bitte beachten:*

   * Falls JJJJ nicht als festes Jahr, sondern als 0000 angegeben ist:
     Es wird angenommen, daß der Monat und Tag jährliche Ereignisse
     sind, und der *Textteil* wird für jedes Jahr ausgegeben.

   * Falls MM nicht als fester Monat, sondern als 00 oder gar nicht
     angegeben ist:
     Es wird angenommen, daß der Tag ein monatliches Ereignis im
     angegebenen Jahr ist, und der *Textteil* wird für jeden Monat
     ausgegeben.

   * Falls TT nicht als fester Tag, sondern als 00 oder gar nicht
     angegeben ist:
     Es wird angenommen, daß der Tag ein tägliches Ereignis im
     angegebenen Monat und Jahr ist, und der *Textteil* wird für jeden
     Tag ausgegeben.

   * Falls ein Wochentagsname WWW im 2...3-stelligen Kurzformat
     angegeben ist, z.B.: `Mon, Die...'
     Es wird angenommen, daß der gegebene Wochentagsname ein
     wöchentliches Ereignis im angegebenen Monat und Jahr ist, und der
     *Textteil* wird für jede Woche ausgegeben.


File: gcal.info,  Node: Weitere Datumteil-Attribute,  Next: Textteil einer Zeile,  Prev: Datumteil einer Zeile,  Up: Ressourcendatei

Weitere Datumteil-Attribute
---------------------------

* Menu:

* Listen von Tagen::               Wie eine Liste von Tagen benutzt wird.
* Bereiche von Tagen::             Wie ein Bereich von Tagen benutzt wird.
* Wiederholungsfaktor von Tagen::  Wie ein solcher Faktor benutzt wird.
* Auftretensfaktor von Tagen::     Wie ein solcher Faktor benutzt wird.

Der Datumteil einer Gcal Ressourcendatei darf mit weiteren Attributen
ausgestattet werden.  Weitere Attribute sind entweder die Angabe einer
Liste von Tagen oder eines Bereichs von Tagen, in welchem der Termin
stattfinden soll.  Weitere Attribute sind auch Faktoren, welche eine
Wiederholungsdauer oder einen Auftretenszeitpunkt eines Termins
bestimmen.

Grundsätzlich dürfen alle folgendermaßen strukturierten Datumteile
einer Gcal Ressourcendatei mit weiteren Attributen versehen werden:

   * `JJJJMM...'

   * `JJJJ*d|w...'

   * `JJJJ@e|DVAR...'

*Vorsicht:*
Falls der Datumteil mit weiteren Attributen ausgestattet ist und das
Jahr des Termin unbestimmt ist, d.h. das Jahr `JJJJ' ist auf Null
gesetzt, so werden solche Datumteile *nur* innerhalb einfacher
Jahresgrenzen korrekt berechnet, also nicht in denjenigen
Terminwarnungen, welche ausgegeben werden, nachdem das laufende Jahr
gewechselt hat, z.B.  in *Fiskaljahren*.


File: gcal.info,  Node: Listen von Tagen,  Next: Bereiche von Tagen,  Prev: Weitere Datumteil-Attribute,  Up: Weitere Datumteil-Attribute

Listen von Tagen
................

Eine Liste von Tagen wird durch ein `,' Trennzeichens kenntlich gemacht;
diese muß mindestens zwei Elemente enthalten, und darf unbegrenzt viele
Elemente enthalten.  Ein einzelnes Element der Liste darf nicht auf den
Wert Null gesetzt werden und somit unkonkret sein, was in diesem
Zusammenhang auch keinen Sinn machen würde.

Eine Liste von Tagen wird dazu benutzt, um wiederkehrende Termine zu
definieren und dabei nur eine Zeile in der Ressourcendatei zu belegen,
anstelle diese wiederkehrenden Termine einzeln in mehreren Zeilen in
der Ressourcendatei festzulegen.  Angenommen ein Termin tritt stets am
1'ten und am 15'ten Tag in jedem beliebigen Monat des Jahres 1996 auf,
z.B.  `Steuer-Voranmeldungen', so kann einerseits für den 1'ten im
Monat ein Termineintrag in der Ressourcendatei vorgenommen werden und
auch für den 15'ten im Monat, was in diesem Fall zwei Einträge in der
Ressourcendatei zu einem solchen Termin ergäbe.

Andererseits kann mittels einer Liste von Tagen dieser Aufwand aber nun
verringert werden hin zu nur einen Eintrag in der Ressourcendatei,
welcher gleichermaßen für den 1'ten und für den 15'ten Tag eines
beliebigen Monat gilt, nämlich

     19960001,15 Steuer-Voranmeldungen

Erlaubt ist die Benutzung der Listen von Tagen im Datumteil wie folgt:

   * `JJJJMMTT|WWW|WWWN,[MM]TT|[MM]WWW|[MM]WWWN ...'

   * `JJJJ*d|wN|NWWW,N|NWWW ...'

   * `JJJJ@e|DVAR,|[+|-]N[WWW],[+|-]N[WWW] ...'

Einige Beispiele hierzu:

`000001fr3,12,99,mon,apr14,993,julfre3,08fr'
     In jedem Jahr im Monat Januar: am 3'ten Freitag, am 12'ten, am
     letzten Tag des Monats sowie an jedem Montag.  Und in jedem Jahr:
     am 14'ten April, am 3'ten Dezember, am 3'ten Freitag im Juli sowie
     an jedem Freitag im August.

`199600mon,fr,12'
     Im Jahr 1996 in jedem Monat: jeden Montag, jeden Freitag sowie an
     jedem 12'ten.

`0*d1,1fr,999,17mo'
     In jedem Jahr: am ersten Tag des Jahres, am 1'ten Freitag des
     Jahres, am letzten Tag des Jahres sowie am 17'ten Montag des
     Jahres.

`1996*w1fr,1,17mo,99fr'
     Im Jahr 1996: am Freitag der 1'ten ISO-Kalenderwoche, am Montag
     der ersten ISO-Kalenderwoche, am Montag der 17'ten
     ISO-Kalenderwoche sowie am Freitag der letzten ISO-Kalenderwoche.

`0@a,+1,-3,5,+4fr,2fr,-10sa'
     In jedem Jahr: am Datum der Datumvariablen A, einen Tag nach dem
     Datum von A, drei Tage vor dem Datum von A, fünf Tage nach dem
     Datum von A, vier Freitage nach dem Datum von A, zwei Freitage
     nach dem Datum von A sowie zehn Samstage vor dem Datum von A.

`1996@e+1,-3,5,+4fr,2fr,-10sa'
     Im Jahr 1996: einen Tag nach Ostersonntag, drei Tage vor
     Ostersonntag, fünf Tage nach Ostersonntag, vier Freitage nach
     Ostersonntag, zwei Freitage nach Ostersonntag sowie zehn Samstage
     vor Ostersonntag.


File: gcal.info,  Node: Bereiche von Tagen,  Next: Wiederholungsfaktor von Tagen,  Prev: Listen von Tagen,  Up: Weitere Datumteil-Attribute

Bereiche von Tagen
..................

Ein Bereich von Tagen wird durch ein `#' Trennzeichens kenntlich gemacht
und besteht aus genau zwei Elementen, nämlich aus Starttag und
Endetag.  Der Starttag wie auch der Endetag des Bereichs darf nicht auf
den Wert Null gesetzt werden und somit unkonkret sein, was in diesem
Zusammenhang auch keinen Sinn machen würde.

Ein Bereich von Tagen wird ebenso wie eine Liste von Tagen dazu benutzt,
um wiederkehrende Termine zu definieren und dabei nur eine Zeile in der
Ressourcendatei zu belegen, anstelle diese wiederkehrenden Termine
einzeln in mehreren Zeilen in der Ressourcendatei festzulegen.
Angenommen ein Termin tritt stets während des 1'ten und des 15'ten
Tages (einschließlich) in jedem beliebigen Monat des Jahres 1996 auf,
z.B. `Innendienst', so kann einerseits für den 1'ten im Monat ein
Termineintrag in der Ressourcendatei vorgenommen werden, für den 2'ten
im Monat ebenso, bis hin zum 15'ten im Monat, was in diesem Fall 15
Einträge in der Ressourcendatei zu einem solchen Termin ergäbe
(einmal abgesehen von der Möglichkeit, daß in einem solchen Fall auch
eine Liste von Tagen verwendet werden kann).

Andererseits kann mittels eines Bereichs von Tagen dieser Aufwand aber
nun verringert werden hin zu nur einen Eintrag in der Ressourcendatei,
welcher gleichermaßen für den 1'ten bis hin zum 15'ten Tag eines
beliebigen Monat gilt, nämlich

     19960001#15 Innendienst

Erlaubt ist die Benutzung der Bereiche von Tagen im Datumteil wie folgt:

   * `JJJJMMWWW#WWW'

   * `JJJJMMTT|WWWN#[MM]TT|[MM]WWWN'

   * `JJJJ*d|wN[WWW]#N[WWW]'

   * `JJJJ@e|DVAR[[+|-]N[WWW]]#[+|-]N[WWW]'

Einige Beispiele hierzu:

`199600mon#fr'
     Im Jahr 1996 in jedem Monat: an jedem Tag, der in der Tagesfolge
     `mo, di, mi, do, fr' auftritt.

`000000fr#mon'
     In jedem Jahr in jedem Monat: an jedem Tag, der in der Tagesfolge
     `fr, sa, so, mo' auftritt.

`000001fr3#12'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 3'ten Freitag des Monats bis zum 12'ten des Monats fällt.

`00000112#fr3'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 12'ten des Monats bis zum 3'ten Freitag des Monats fällt.

`00000112#augfre3'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 12'ten Januar
     bis zum 3'ten Freitag des Monats August fällt.

`0000sep13#99fr9'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 13'ten
     September bis zum letzten Freitag des Monats Dezember fällt.

`0*d1#1fr'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 1'ten Tag des
     Jahres bis zum 1'ten Freitag des Jahres fällt.

`0*d99fr#333'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom letzten
     Freitag des Jahres bis zum 333'ten Tag des Jahres fällt.

`1996*w1fr#17mo'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Freitag der
     1'ten ISO-Kalenderwoche bis zum Montag der 17'ten
     ISO-Kalenderwoche fällt.

`0@a#+4fr'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom Datum der
     Datumvariablen A bis zum 4'ten Freitag nach dem Datum der
     Datumvariablen A fällt.

`1996@e-3#+9fr'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Datum drei
     Tage vor Ostersonntag bis zum 9'ten Freitag nach dem Datum des
     Ostersonntag fällt.


File: gcal.info,  Node: Wiederholungsfaktor von Tagen,  Next: Auftretensfaktor von Tagen,  Prev: Bereiche von Tagen,  Up: Weitere Datumteil-Attribute

Wiederholungsfaktor von Tagen
.............................

Ein Wiederholungsfaktor von Tagen (`:N') wird durch ein `:' Zeichen
kenntlich gemacht und muß dem Tagesfeld, welches einen konkreten Wert
in einem Datumteil einer Gcal Ressourcendatei haben muß und nicht auf
den Wert Null gesetzt sein darf, folgen bzw. einem Auftretensfaktor von
Tagen entweder vorangehen oder folgen.  Mit Ausnahme von Bereichen von
Tagen oder Terminen, die nur an einem bestimmten Wochentag auftreten
wie z.B.  `199600mon Immer Montags 1996', darf ein solcher
Wiederholungsfaktor in allen ansonsten möglichen Angaben von
Datumteilen einer Gcal Ressourcendatei auftreten.

Dieser Faktor darf den Wert `1'...`999' annehmen.  Werte die größer
sind als die tatsächliche Differenz zwischen dem Datum des ersten
Auftretens des Termins und dem letzten Tag des Jahres werden stets auf
diese tatsächliche Differenz reduziert.  So bedeutet dann jeder Wert
größer `365' (oder `366' in Schaltjahren) stets einen
Wiederholungsfaktor bis hin zum letzten Tag des Jahres.

Ein Wiederholungsfaktor von Tagen wird dazu benutzt, um wiederkehrende
Termine zu definieren und dabei nur eine Zeile in der Ressourcendatei
zu belegen, anstelle diese wiederkehrenden Termine einzeln in mehreren
Zeilen in der Ressourcendatei festzulegen.  Angenommen ein Termin tritt
stets am 15'ten Tag in jedem beliebigen Monat des Jahres 1996 auf und
erstreckt sich über einen Zeitraum von insgesamt vier Tagen
(einschließlich des 15'ten selbst), z.B. `Mitarbeiterschulung', so
kann einerseits für den 15'ten im Monat ein Termineintrag in der
Ressourcendatei vorgenommen werden und auch für die dem 15'ten im
Monat folgenden drei Tage, was in diesem Fall vier Einträge in der
Ressourcendatei zu einem solchen Termin ergäbe (einmal abgesehen von
der Möglichkeit, daß in einem solchen Fall auch eine Liste oder ein
Bereich von Tagen verwendet werden kann).

Andererseits kann mittels eines Wiederholungsfaktors von Tagen dieser
Aufwand aber nun verringert werden hin zu nur einen Eintrag in der
Ressourcendatei, welcher gleichermaßen für den 15'ten und die dem
15'ten folgenden drei Tage eines beliebigen Monat gilt, nämlich

     19960015:4 Mitarbeiterschulung

Erlaubt ist die Benutzung der Wiederholungsfaktoren von Tagen im
Datumteil wie folgt:

   * `JJJJMMTT:N|WWWN:N'

   * `JJJJ*d|wN:N|NWWW:N'

   * `JJJJ@e|DVAR[[+|-]N[WWW]]:N'

   * `JJJJMMTT:N|WWWN:N,[MM]TT:N|[MM]WWWN:N ...'

   * `JJJJ*d|wN:N|NWWW:N,N:N|NWWW:N ...'

   * `JJJJ@e|DVAR:N,|[+|-]N[WWW]:N,[+|-]N[WWW]:N ...'

Einige Beispiele hierzu:

`000001fr3:11'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 3'ten Freitag des Monats und den darauffolgenden zehn Tagen
     fällt.

`00000112:3'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 12'ten des Monats und den darauffolgenden zwei Tagen fällt.

`00000112:3,fr3:5'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 12'ten des Monats und den darauffolgenden zwei Tagen fällt,
     sowie auch in den Zeitraum vom 3'ten Freitag des Monats und den
     darauffolgenden vier Tagen fällt.

`0*d1:1'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 1'ten Tag des
     Jahres und keinem darauffolgenden Tag fällt.

`0*d1:2'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 1'ten Tag des
     Jahres und dem darauffolgenden Tag fällt.

`0*d99fr:333'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom letzten
     Freitag des Jahres und den darauffolgenden 332 Tagen fällt.
     Allerdings werden in Fällen wie diesen, wo ein solcher Termin die
     Jahresgrenze überschreiten würde, nur Termine bis zum letzten
     Tag des Jahres produziert.

`1996*w1fr:17'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Freitag der
     1'ten ISO Kalenderwoche und den darauffolgenden 16 Tagen fällt.

`0@a:4'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom Datum der
     Datumvariablen A und den darauffolgenden drei Tagen fällt.

`1996@e-3:9'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Datum drei
     Tage vor Ostersonntag und den darauffolgenden acht Tagen fällt.


File: gcal.info,  Node: Auftretensfaktor von Tagen,  Prev: Wiederholungsfaktor von Tagen,  Up: Weitere Datumteil-Attribute

Auftretensfaktor von Tagen
..........................

Ein Auftretensfaktor von Tagen (`.N') wird durch ein `.' Zeichen
kenntlich gemacht und muß dem Tagesfeld, welches einen konkreten Wert
in einem Datumteil einer Gcal Ressourcendatei haben muß und nicht auf
den Wert Null gesetzt sein darf, folgen bzw. einem Wiederholungsfaktor
von Tagen entweder vorangehen oder folgen.  Mit Ausnahme von Terminen,
die nur an einem bestimmten Wochentag auftreten und als solche nicht
als ein Bereich von Tagen angegeben sind, wie z.B. `199600mon Immer
Montags 1996', darf ein solcher Wiederholungsfaktor in allen ansonsten
möglichen Angaben von Datumteilen einer Gcal Ressourcendatei
auftreten.  Bei Listen von Tagen darf dieser Faktor in jedem einzelnen
Element angegeben werden, bei Bereichen von Tagen darf dieser Faktor
*nur* dem Endetag folgen.  Allerdings macht die Verwendung dieses
Auftretensfaktors nur dann Sinn, wenn er entweder in einem Bereich von
Tagen, oder aber zusammen mit einem Wiederholungsfaktor angegeben wird.

Dieser Faktor darf den Wert `1'...`999' annehmen.  Wenn der Faktor
Werte annimmt, die größer sind als die tatsächliche Differenz
zwischen dem Datum des Auftretens des Termins und dem letzten Tag des
Jahres bzw. dem Ende des Zeitraum, für welchen die Termine entweder
produziert oder berücksichtigt werden sollen, so wird ein solcher
Termin ignoriert.

Ein Auftretensfaktor von Tagen wird dazu benutzt, um einem bestimmten
Versatz in wiederkehrenden Terminen zu definieren.  Angenommen ein
Termin tritt stets am 15'ten Tag in jedem beliebigen Monat des Jahres
1996 auf und erstreckt sich über einen Zeitraum von insgesamt sieben
Tagen (einschließlich des 15'ten selbst), soll aber nur jeden dritten
Tag (d.h. jeweils zwei Tage sind zu überspringen) innerhalb dieser
Periode berücksichtigt werden, z.B.  `Seminar', so kann einerseits
für den 15'ten im Monat ein Termineintrag in der Ressourcendatei
vorgenommen werden, für den 18'ten und auch für den 21'ten im Monat,
was in diesem Fall drei Einträge in der Ressourcendatei zu einem
solchen Termin ergäbe (einmal abgesehen von der Möglichkeit, daß in
einem solchen Fall auch eine Liste von Tagen verwendet werden kann).

Andererseits kann mittels eines Auftretensfaktors von Tagen dieser
Aufwand aber nun verringert werden hin zu nur einen Eintrag in der
Ressourcendatei, welcher gleichermaßen für den 15'ten, den 18'ten und
den 21'ten eines beliebigen Monat gilt, beispielsweise unter Verwendung
eines Wiederholungsfaktors

     19960015:7.3 Seminar

oder auch unter Verwendung eines Bereichs von Tagen

     19960015#21.3 Seminar

Erlaubt ist die Benutzung der Auftretensfaktoren von Tagen im Datumteil
wie folgt:

   * `JJJJMMTT:N.N|TT.N:N'

   * `JJJJMMWWWN:N.N|WWWN.N:N'

   * `JJJJ*d|wN:N.N|N.N:N'

   * `JJJJ*d|wNWWW:N.N|NWWW.N:N'

   * `JJJJ@e|DVAR[[+|-]N[WWW]]:N.N'

   * `JJJJ@e|DVAR[[+|-]N[WWW]].N:N'

   * `JJJJMMTT:N.N|WWWN:N.N,[MM]TT:N.N|[MM]WWWN:N.N ...'

   * `JJJJMMTT.N:N|WWWN.N:N,[MM]TT:N.N|[MM]WWWN.N:N ...'

   * `JJJJ*d|wN:N.N|NWWW:N.N,N:N.N|NWWW:N.N ...'

   * `JJJJ*d|wN.N:N|NWWW.N:N,N.N:N|NWWW.N:N ...'

   * `JJJJ@e|DVAR:N.N,|[+|-]N[WWW]:N.N,[+|-]N[WWW]:N.N ...'

   * `JJJJ@e|DVAR.N:N,|[+|.]N[WWW].N:N,[+|.]N[WWW].N:N ...'

   * `JJJJMMWWW#WWW.N'

   * `JJJJMMTT|WWWN#[MM]TT|[MM]WWWN.N'

   * `JJJJ*d|wN[WWW]#N[WWW].N'

   * `JJJJ@e|DVAR[[+|-]N[WWW]]#[+|-]N[WWW].N'

Einige Beispiele hierzu:

`000001fr3:11.3'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 3'ten Freitag und den darauffolgenden zehn Tagen fällt, aber
     nur jeden dritten Tag in diesem Zeitraum (überspringe jeweils
     zwei Tage).

`00000112:3.2'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 12'ten des Monats und den darauffolgenden zwei Tagen fällt,
     aber nur jeden zweiten Tag in diesem Zeitraum (überspringe jeweil
     einen Tag).

`00000112:3.2,fr3:5.3'
     In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
     vom 12'ten des Monats und den darauffolgenden zwei Tagen fällt,
     aber nur jeden zweiten Tag (überspringe jeweils einen Tag) sowie
     auch am 3'ten Freitag im Januar jeden Jahres und den
     darauffolgenden vier Tagen, aber nur jeden dritten Tag
     (überspringe jeweils zwei Tage).

`0*d1:10.1'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 1'ten Tag des
     Jahres und den darauffolgenden neun Tagen fällt, und das für
     jeden dieser Tage (überspringe jeweils null Tage) in diesem
     Zeitraum.

`0*d1:2.5'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom 1'ten Tag des
     Jahres und dem darauffolgenden Tag fällt, aber nur jeden fünften
     Tag (überspringe jeweils vier Tage) in diesem Zeitraum.  In einem
     solchen Fall werden die dem Starttag (1'ter Tag des Jahres)
     folgenden Tage (in diesem Beispiel nur einer) nicht respektiert,
     da der nächste Tag, der sich unter Berücksichtigung des
     Auftretensfaktors ergibt, denjenigen Tag, welcher sich mit dem
     Wiederholungsfaktor als Endetag der Periode errechnet,
     überschreitet.

`0*d99fr:333.61'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom letzten
     Freitag des Jahres und den darauffolgenden 332 Tagen fällt, aber
     nur jeden 61'ten Tag (überspringe jeweils 60 Tage) in diesem
     Zeitraum.  Allerdings werden in Fällen wie diesen, wo ein solcher
     Termin die Jahresgrenze überschreiten würde, nur Termine bis zum
     letzten Tag des Jahres produziert.  Da nun aber mit einem Versatz
     von 60 Tage gearbeitet werden soll, wird keiner der dem Starttag
     (letzter Freitag des Jahres) folgenden Tage (in diesem Beispiel
     332) respektiert, da der nächste Tag, der sich unter
     Berücksichtigung des Auftretensfaktors ergibt, denjenigen Tag,
     welcher sich mit dem Wiederholungsfaktor als Endetag der Periode
     errechnet (hier wäre es der letzte Tag des Jahres),
     überschreitet.

`1996*w1fr:17.8'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Freitag der
     1'ten ISO-Kalenderwoche und den darauffolgenden 16 Tagen fällt,
     aber nur jeden achten Tag in diesem Zeitraum (überspringe jeweils
     sieben Tage).

`0@a:4.3'
     In jedem Jahr: an jedem Tag, der in den Zeitraum vom Datum der
     Datumvariablen A und den darauffolgenden drei Tagen fällt, aber
     nur jeden dritten Tag in diesem Zeitraum (überspringe jeweils
     zwei Tage).

`1996@e-3:9.4'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Datum drei
     Tage vor Ostersonntag und den darauffolgenden acht Tagen fällt,
     aber nur jeden vierten Tag in diesem Zeitraum (überspringe
     jeweils drei Tage).

`1996@e3#-20so.15'
     Im Jahr 1996: an jedem Tag, der in den Zeitraum vom Datum drei
     Tage nach Ostersonntag bis zum 20'ten Sonntag vor Ostersonntag
     fällt, aber nur jeden 15'ten Tag in diesem Zeitraum (überspringe
     jeweils 14 Tage).

