function Datum(tag,monat,jahr)
     {
      this.tag = tag;
      this.monat = monat;
      this.jahr = jahr;
     }

function Yesterday(date)
{
tag = parseInt(date.tag);
monat = parseInt(date.monat);
jahr = parseInt(date.jahr);

if (tag == 1)
{
	if (monat == 1)
	{
		monat = 12;
		jahr = jahr--;
	}
	else monat--;
	tag = GetDays(monat,jahr);
}
else tag--;
newDate = new Datum(tag,monat,jahr)
return (newDate);

}

function AddMonths(date,months, yesterday)
{

tag = parseInt(date.tag);
monat = parseInt(date.monat);
jahr = parseInt(date.jahr);
monate = parseInt(months);

for (i=0;i<monate;i++)
{
	if (monat == 12)
	{
		monat = 1;
		jahr++;
	}
	else monat++;
}
newDate = new Datum(tag,monat,jahr)
if (yesterday) newDate = Yesterday(newDate);
return (newDate);
}

function AddDays(date,days)
{

tag = parseInt(date.tag);
monat = parseInt(date.monat);
jahr = parseInt(date.jahr);
tage = parseInt(days);

restOfMonth = GetDays(monat,jahr) - tag;

if (tage < restOfMonth)
{
	tag = tag + tage;
	tage = 0;
}
else
{
	tage = tage - restOfMonth;
	tag = GetDays(monat,jahr);
}

while (tage > 0)
{
	tag = 1;
	if (monat == 12)
	{
		monat = 1;
		jahr++;
	}
   else  monat++;
  
   if (tage < GetDays(monat,jahr))
	{
		tag = tage;
		tage = 0;
	}
	else
	{
		tage = tage - GetDays(monat,jahr);
		tag = GetDays(monat,jahr);
	}
}

newDate = new Datum(tag,monat,jahr)
return (newDate);
}


function GetDays(monat,jahr)
{
switch(monat)
  {
   case "1":
   case "3":
   case "5":
   case "7":
   case "8":
   case "10":
   case "12":
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:
		return (31);
   break;

   case "2":
   case 2:
// Achtung, schaltjahr
		return(28);
	break;
   default:
   		return (30);
   break;
  } 
}


function printdate(date)
{
return (date.tag+"."+date.monat+"."+date.jahr);
}

