import java.util.*;
class Feiertage
{
GregorianCalendar Eastersunday(int Jahr)
{
//Initialisierung
int a,b,c,m,s,e,M,N,d;
int test;
GregorianCalendar Datum = new GregorianCalendar(Jahr,2,21);
//Gausische Formel
e = 0;
a = Jahr % 19;
b = Jahr % 4;
c = Jahr % 7;
m = ((8*(Jahr/100)+13)/25)-2;
s=(Jahr/100)-(Jahr/400)-2;
M=(15+s-m)%30;
N=(6+s)% 7;
d=(M+19*a)%30;
if(d==29)
{
d = 28;
}
else
e=(2*b+4*c+6*d+N)% 7;
if(d== 28 && a >=11)
{
d = 27;
}
else
e=(2*b+4*c+6*d+N)% 7;
//Ostern ist am Tag nach dem 21. März
test= (d+e+1);
Datum.add(Calendar.DATE,test);
return(Datum);
}
//Berechnung des Muttertags(2 Sonntag im Mai)
GregorianCalendar Motherday(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,4,1);
int i=0;
while(i<2)
{
if(Datum.get(Calendar.DAY_OF_WEEK)== 1)
{
i++;
if(i==2)
break;
}
Datum.add(Calendar.DATE,1);
}
return (Datum);
}
GregorianCalendar Neujahr(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,1);
Datum.set(Calendar.MONTH,0);
return(Datum);
} //private GregorianCalendar Neujahr(int jahr)
GregorianCalendar HeiligedreiKoenige(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,6);
Datum.set(Calendar.MONTH,0);
return(Datum);
}// private GregorianCalendar HeiligedreiKoenige(int jahr)
GregorianCalendar Karfreitag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,Eastersunday(jahr).get(Calendar.DATE)-2);
Datum.set(Calendar.MONTH,Eastersunday(jahr).get(Calendar.MONTH));
return(Datum);
}//private GregorianCalendar Karfreitag(int jahr)
GregorianCalendar Ostermontag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,Eastersunday(jahr).get(Calendar.DATE)+1);
Datum.set(Calendar.MONTH,Eastersunday(jahr).get(Calendar.MONTH));
return(Datum);
}//private GregorianCalendar Karfreitag(int jahr)
GregorianCalendar Erscheinungsfest(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,0);
Datum.set(Calendar.DATE,6);
return(Datum);
}//private GregorianCalendar ErsteMai(int jahr)
GregorianCalendar ErsteMai(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,4);
Datum.set(Calendar.DATE,1);
return(Datum);
}//private GregorianCalendar ErsteMai(int jahr)
GregorianCalendar ChristiHimmelfahrt(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.MONTH));
Datum.set(Calendar.DATE,(Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.DATE)));
Datum.add(Calendar.DATE,39);
return(Datum);
}//private GregorianCalendar ChristiHimmelfahrt(int jahr)
GregorianCalendar Pfingstmontag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.MONTH));
Datum.set(Calendar.DATE,(Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.DATE)));
Datum.add(Calendar.DATE,50);
return(Datum);
}
GregorianCalendar Pfingstsonntag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.MONTH));
Datum.set(Calendar.DATE,(Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.DATE)));
Datum.add(Calendar.DATE,49);
return(Datum);
} //private GregorianCalendar Pfingstmontag(int jahr)
GregorianCalendar Fronleichnam(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.MONTH));
Datum.set(Calendar.DATE,(Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.DATE)));
Datum.add(Calendar.DATE,60);
return(Datum);
} //private GregorianCalendar Fronleichnam(int jahr)
GregorianCalendar Aschermittwoch(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.MONTH,Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.MONTH));
Datum.set(Calendar.DATE,(Eastersunday(Datum.get(Calendar.YEAR)).get(Calendar.DATE)-46));
return(Datum);
} //private GregorianCalendar Aschermittwoch(int jahr)
GregorianCalendar MariaHimmelfahrt(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,15);
Datum.set(Calendar.MONTH,7);
return(Datum);
} //private GregorianCalendar MariaHimmelfahrt(int jahr)
GregorianCalendar TagDeutscheEinheit(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,3);
Datum.set(Calendar.MONTH,9);
return(Datum);
} //private GregorianCalendar TagDeutscheEinheit(int jahr)
GregorianCalendar Reformationstag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,31);
Datum.set(Calendar.MONTH,9);
return(Datum);
} //private GregorianCalendar Reformationstag(int jahr)
GregorianCalendar ErsteWeihnachtstag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,25);
Datum.set(Calendar.MONTH,11);
return(Datum);
} //private GregorianCalendar ErsteWeihnachtstag(int jahr)
GregorianCalendar ZweiteWeihnachtstag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,26);
Datum.set(Calendar.MONTH,11);
return(Datum);
} //private GregorianCalendar ErsteWeihnachtstag(int jahr)
GregorianCalendar Allerheiligen(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,1,1);
Datum.set(Calendar.DATE,1);
Datum.set(Calendar.MONTH,10);
return(Datum);
} //private GregorianCalendar ErsteWeihnachtstag(int jahr)
//Berechnung des Buss/Bettages.
//Formel : Liegt zwischen dem 16-22 an einem Mittowch in November
public GregorianCalendar Bettag(int jahr)
{
GregorianCalendar Datum = new GregorianCalendar(jahr,10,16); //
int i= 16;
while(i<22)
{
if(Datum.get(Calendar.DAY_OF_WEEK)==4)
{
break;
}
i++;
Datum.add(Calendar.DATE,1);
}
return (Datum);
}
//------------------------------------------------------------------------------------------------
}//Feiertage