ical4j Parser

fStein

Mitglied
Hallo Leutz
Ich habe folgendes Problem: Ich versuche ein Programm zu bauen, dass mir zwischen zwei Daten alle tage und die Arbeitstage ausgibt. was ich nun schon hinbekommen habe ist ein Programm, welches die Differenz zwischen den Daten ausgibt und man per check-box an klicken kann an welchen tagen der Woche man arbeitet. nun sollte dieses Programm aber natürlich noch Feiertage einbeziehen am schönsten per Drop box für alle verschiedenen Bundesländer. nun habe ich eine ical Datei gefunden mit den Feiertagen bis 2015. das ist ja auch super nur verstehe ich nicht, wie ich jetzt diesen Parser verwenden kann. im Grunde brauche ich ja nur, dass er mir zu einem datum sagt per boolean. ist Feiertag oder ist nicht. und mit der Doku komm ich ehrlich gesagt nicht so zurecht.
Wäre cool, wenn mir jemand hier helfen könnt.
Liebe Grüße
FStein
 

MarderFahrer

Gesperrter Benutzer
Ist eigentlich recht einfach. Den Kalendar einlesen, die Komponenten holen und dann darüber iterieren, um die Datums von den Feiertagen zu finden.
Ein schnelles Beispiel mit den Feiertagen von Australien aus den Samples:
Java:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;

import net.fortuna.ical4j.data.CalendarBuilder;
import net.fortuna.ical4j.data.ParserException;
import net.fortuna.ical4j.model.Calendar;
import net.fortuna.ical4j.model.Component;
import net.fortuna.ical4j.model.ComponentList;
import net.fortuna.ical4j.model.Property;
import net.fortuna.ical4j.model.PropertyList;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FileInputStream fin;

		try {
			fin = new FileInputStream("Australian32Holidays.ics");

			CalendarBuilder builder = new CalendarBuilder();

			Calendar calendar = builder.build(fin);

			ComponentList liste = calendar.getComponents();
			Iterator<Component> itr = liste.iterator();

			while (itr.hasNext()) {
				Component component = itr.next();

				Property pro = component.getProperty("DTSTART");
				if (pro != null) {
					System.out.println("Feiertag beginnt am: " + pro.getValue());
				}

			}
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e2) {
			e2.printStackTrace();
		} catch (ParserException e3) {
			e3.printStackTrace();
		}

	}

}

BTW, ich hab keine Ahnung warum in der Datei nur 11 Events drin sind wenn Sie "Australian32Holidays" heißt. Aber was solls. Ausgabe davon ist dann:
Code:
Feiertag beginnt am: 20020126
Feiertag beginnt am: 20020329
Feiertag beginnt am: 20020401
Feiertag beginnt am: 20020425
Feiertag beginnt am: 20020610
Feiertag beginnt am: 20021225
Feiertag beginnt am: 20021226
Feiertag beginnt am: 20030418
Feiertag beginnt am: 20030421
Feiertag beginnt am: 20030609
Feiertag beginnt am: 20020101

Jetzt musst du also nur noch dein Datum auf dieses Format bringen oder umgekehr, um zu vergleichen ob an der Tag mit in die Rechnung muss oder nicht.
 
Zuletzt bearbeitet:

fStein

Mitglied
Ich habe jetzt den Code mal in nem test system laufenlassen um besser zu verstehen, wass er tut, leide bekomme ich folgende fehlermeldung:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at net.fortuna.ical4j.util.Configurator.<clinit>(Configurator.java:51)
	at net.fortuna.ical4j.data.CalendarParserFactory.<clinit>(CalendarParserFactory.java:62)
	at net.fortuna.ical4j.data.CalendarBuilder.<init>(CalendarBuilder.java:123)
	at fStein.ICALtest.Test.main(Test.java:30)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 4 more
kann mir einer sagen warum. alle klassen, die ich benutze habe ich doch eingebunden. er zeigt mir auch nicht, dass noch irgendwelche imports fehlen. funktionieren die .net imports einfach nicht?
 

HoaX

Top Contributor
ical4j hat eben Abhängigkeiten, u.A. zu Apache Commons Logging, wie man der Meldung entnehmen kann. Die nötigen Libs liegen doch alle im Zip mit drinnen?!
 

fStein

Mitglied
ich habe jetzt nochmal alles neu aufgesetzt und die zip datei neu eingebunden. keine ahnung, was beim ersten mal schief ging, aber ejtzt geht es soweit bis auf diese importierung hier
Code:
02.03.2011 09:57:17 net.fortuna.ical4j.util.Configurator <clinit>
INFO: ical4j.properties not found.
das heißt doch wenn ich nicht völlig fgalsch liege, dass die angegebene lib sich nicht in der zip datei befindet. wo bekomm ich denn jetzt angegeben lib her?
 

HoaX

Top Contributor
Das ist keine Fehlermeldung sondern eine Logausgabe mit Loglevel INFO. Mittels der log4j.properties-Datei kannst du den Logger konfigurieren. Schau dazu einfach mal auf die Webseite zu log4j oder google, da gibts massig Beispiele, ist relativ einfach und nützlich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Methoden Parser für gängige Datumsformate? Allgemeine Java-Themen 1
W CSV-Parser Allgemeine Java-Themen 1
I DOM-Parser - Element im Element an bestimmten Stellen auslesen Allgemeine Java-Themen 1
L Generator für einen Parser implementieren Allgemeine Java-Themen 13
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
offi EDIFACT Parser Allgemeine Java-Themen 7
Neumi5694 Parser - Zerlegen verschachtelter Funktionen Allgemeine Java-Themen 2
RalleYTN Lua Parser? Allgemeine Java-Themen 2
O Sax-Parser ließt XML-File doppelt Allgemeine Java-Themen 1
Thallius Simple JSON Parser Error null Allgemeine Java-Themen 6
A Konstrukt ohne Main für Xml-Parser Allgemeine Java-Themen 1
F Parser Framework/Plugin für Datei in Custom-Format Allgemeine Java-Themen 2
H Best Practice Ideensuche: Flexibel hinzufügbare eigene Parser Allgemeine Java-Themen 6
J Best Practice Parser für Taschenrechner Allgemeine Java-Themen 4
V String nicht im String literal pool speichern - Parser Allgemeine Java-Themen 30
A Parser verursacht Speicherprobleme auf Server Allgemeine Java-Themen 2
P RegEx mit HTML Parser für Java möglich? Allgemeine Java-Themen 10
H Kleiner HTML Parser (Facharbeit) Allgemeine Java-Themen 11
G REST Client / URL Parser Allgemeine Java-Themen 2
M String tokenizer / parser Allgemeine Java-Themen 3
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
S HTML => DOM - Welcher Parser für meine Zwecke? Allgemeine Java-Themen 3
E Parser basteln mit CUP Allgemeine Java-Themen 6
T HTML Parser Allgemeine Java-Themen 7
R Script parser Allgemeine Java-Themen 6
T Mathematik Parser Library? Allgemeine Java-Themen 4
N DOM Parser Allgemeine Java-Themen 2
J Parser / Scanner / Tokenizer gesucht Allgemeine Java-Themen 3
S Textfeld Parser sinnvoll? Allgemeine Java-Themen 3
B Parser für logische Ausdrücke Allgemeine Java-Themen 9
D Parser-generator für mathematische Funktionen Allgemeine Java-Themen 12
D CSV Parser Allgemeine Java-Themen 12
T Webseite (HTML) Parser gesucht Allgemeine Java-Themen 8
R Parser: Datei auslesen, Datei erstellen - Geschwindigkeit Allgemeine Java-Themen 16
T Parser für BBCode? Allgemeine Java-Themen 3
S html parser Allgemeine Java-Themen 3
G Parser erstellen Allgemeine Java-Themen 12
T Suche BBCode-Parser in Java Allgemeine Java-Themen 2
A Parser für \ Allgemeine Java-Themen 12
J Java Parser Tool verfügbar? Allgemeine Java-Themen 3
A api latex bzw. latex parser Allgemeine Java-Themen 2
B tipps zum schreiben eines mathematischen parser Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben