G
Guest
Gast
Huhu, ich hoffe mir kann jmd helfen so richtig weiss ich nicht weiter:/
Und zwar sieht ihr hier folgendes Code-Beispiel für das berechnen von Feiertagen
Die Methoden die die Werte für a,b,c,d liefern funktionieren.
Dem Wert c wird über die Methode istFeiertag(jahr,d) der Feiertag übergeben, die Methode überprüft ob an dem Tag ein Feiertag ist, wenn nicht gibt die Methode den Wert null wieder. (aslo boolean null, default wie auch immer)
Mein Problem besteht nun darin, dass ich über eine If Else anweisung den Wert C auf seinen Inhalt überprüfen möchte.
Wenn der Wert nicht null ist soll er mir den Feiertag ausgeben. Wenn der Wert 0 ist mache nix und fahre fort.
Codebeispiel ohne If Anweisung
/* public void berechneFeiertage()
{
int t;
int bla = k.schaltjahr(jahr);
// Schaue nach welcher Monat
int a = k.tagesnummer(1, monat,jahr); // a= Tagesnummer a 1.... 365
int b = k.monat_im_jahr(jahr,a); // Monat im Jahr b = 1-12
int d = k.tag_im_jahr(jahr,a); // Ausgabe des Tages d 1-31 DEr TAg im JAHR
String c;
// C enthält information ob Feiertag oder nicht
// schaltjahrprüfung
if ( bla == 1 && monat == 2)
{ t = monatslaenge +1;}
else
{
t = monatslaenge;
}
// überprüfe den ersten Tag bis letzten Tag ob es ein feiertag ist
// wenn der tag ein feiertag ist, erhöhe den Tag um 1 und überprüfe ob feiertag
for ( int i = 1; i <= t; i++)
{
c = k.istFeiertag (jahr,d);
d++;
System.out.println(" "+ a + " " + b+ " " + d);
System.out.println(c);
}
}
Ich habe die If anweisung in die for-next schleife gehauen, dass sieht dann so aus :
for ( int i = 1; i <= t; i++)
{
c = k.istFeiertag (jahr,d);
d++;
if(c.equalsIgnoreCase(null))
{
System.out.println(" "+ a + " " + b+ " " + d);
System.out.println(c);
}
else
{
System.out.println(c);
}
}
Nun erhalte ich halt eine NullpointerException weil er mit dem leeren Wert nicht arbeiten kann :/
Wie muß ich die If Anweisung umgestalten, damit ich damit arbeiten kann, oder muß ich den String in Boolean konvertieren ?
Vielen Dank
René
Und zwar sieht ihr hier folgendes Code-Beispiel für das berechnen von Feiertagen
Die Methoden die die Werte für a,b,c,d liefern funktionieren.
Dem Wert c wird über die Methode istFeiertag(jahr,d) der Feiertag übergeben, die Methode überprüft ob an dem Tag ein Feiertag ist, wenn nicht gibt die Methode den Wert null wieder. (aslo boolean null, default wie auch immer)
Mein Problem besteht nun darin, dass ich über eine If Else anweisung den Wert C auf seinen Inhalt überprüfen möchte.
Wenn der Wert nicht null ist soll er mir den Feiertag ausgeben. Wenn der Wert 0 ist mache nix und fahre fort.
Codebeispiel ohne If Anweisung
/* public void berechneFeiertage()
{
int t;
int bla = k.schaltjahr(jahr);
// Schaue nach welcher Monat
int a = k.tagesnummer(1, monat,jahr); // a= Tagesnummer a 1.... 365
int b = k.monat_im_jahr(jahr,a); // Monat im Jahr b = 1-12
int d = k.tag_im_jahr(jahr,a); // Ausgabe des Tages d 1-31 DEr TAg im JAHR
String c;
// C enthält information ob Feiertag oder nicht
// schaltjahrprüfung
if ( bla == 1 && monat == 2)
{ t = monatslaenge +1;}
else
{
t = monatslaenge;
}
// überprüfe den ersten Tag bis letzten Tag ob es ein feiertag ist
// wenn der tag ein feiertag ist, erhöhe den Tag um 1 und überprüfe ob feiertag
for ( int i = 1; i <= t; i++)
{
c = k.istFeiertag (jahr,d);
d++;
System.out.println(" "+ a + " " + b+ " " + d);
System.out.println(c);
}
}
Ich habe die If anweisung in die for-next schleife gehauen, dass sieht dann so aus :
for ( int i = 1; i <= t; i++)
{
c = k.istFeiertag (jahr,d);
d++;
if(c.equalsIgnoreCase(null))
{
System.out.println(" "+ a + " " + b+ " " + d);
System.out.println(c);
}
else
{
System.out.println(c);
}
}
Nun erhalte ich halt eine NullpointerException weil er mit dem leeren Wert nicht arbeiten kann :/
Wie muß ich die If Anweisung umgestalten, damit ich damit arbeiten kann, oder muß ich den String in Boolean konvertieren ?
Vielen Dank
René