Aufgabe: In der aktuellen Datei OUTLOOK.HOL, von Microsoft Office 2007 sind die Feiertage (z.B. für die Schweiz) für den Import in Microsoft Outlook "nur" bis zum Jahre 2012 definiert (Annahme). Schreiben Sie ein Programm, dass die Feiertage für mindestens die nächsten 20 Jahre berechnet, die berechneten Feiertage tabellarisch darstellt und in eine OUTLOOK.HOL Datei exportiert, zum späteren Import in Microsoft Outlook.
J bietet leistungsfähige Funktionen zur Datumsberechnung, die auch ohne Probleme erweitert werden können. In diesem Beispiel haben wir sämtliche Datumsfunktionen ausprogrammiert um einen weiteren Überblick über die Leistungsfähigkeit von J zu verschaffen.
In total 442 Zeilen J Code (inklusive viel Kommentar) ist die komplette Datums und Feiertagsberechnung sowie ein übersichtliches GUI enthalten:
Wenn Sie den Source Code im nächsten Abschnitt anschauen, werden Sie feststellen, dass J in der Regel ohne Schleifen (Loops) auskommt. Dies ist im ersten Augenblick kaum zu verstehen, ist aber so, da praktisch jede J Funktion die Schleife (for, while, etc.) in sich trägt. Dies ist ein weiteres Merkmal einer Array Orientierten Programmiersprache.
Beispiel: Sortieren der berechneten Feiertage nach Monat und Tag
NB. Nach Monat & Tag sortieren a =. |: ft NB. Transponieren der Matrix b =. 3{a NB. 3. Zeile (Monate) c =. 2{a NB. 2. Zeile (Tage) d =. b,c,a NB. Zeile mit Monaten, dann Tagen vorne anhängen e =. |: d NB. Transponieren zum sortieren f =. e/:e NB. Sortieren g =. |: f NB. Zurück transponieren h =. |:2 3 4 5{g NB. Die vorne angehängten Zeilen entfernen ft =. h NB. Variable zuweisen