
MonatsTage= new Array();
MonatsTage[1]= 31; MonatsTage[2]= 28; MonatsTage[3]= 31;
MonatsTage[4]= 30; MonatsTage[5]= 31; MonatsTage[6]= 30;
MonatsTage[7]= 31; MonatsTage[8]= 31; MonatsTage[9]= 30;
MonatsTage[10]= 31; MonatsTage[11]= 30; MonatsTage[12]= 31;

MonatsName= new Array();
MonatsName[1]= "Januar"; MonatsName[2]= "Februar"; MonatsName[3]= "M&auml;rz";
MonatsName[4]= "April"; MonatsName[5]= "Mai"; MonatsName[6]= "Juni";
MonatsName[7]= "Juli"; MonatsName[8]= "August"; MonatsName[9]= "September";
MonatsName[10]= "Oktober"; MonatsName[11]= "November"; MonatsName[12]= "Dezember";

WochenTag= new Array(); WochenTag[0]= "Sonntag";
WochenTag[1]= "Montag"; WochenTag[2]= "Dienstag"; WochenTag[3]= "Mittwoch";
WochenTag[4]= "Donnerstag"; WochenTag[5]= "Freitag"; WochenTag[6]= "Samstag";

function dattage(Ta, Mo, Ja) {
  var dattag = 365 * Ja + Ta;
  for (i=1;i<Mo;i++) dattag+= MonatsTage[i]
  if (Ja < 1582) {
    dattag+= 10;
    for (i = 1580; i >= Ja; i-= 4 )
      dattag--;
  }
  else
  if (Ja == 1582) {
    if (Mo == 10) {
      if (Ta < 5) dattag+= 10;
      else
      if (Ta < 15) dattag = -99;
    }
    else if (Mo < 10) dattag+= 10;
  }
  else
  if (Ja > 2499) dattag = -99;
  else {
    for (i = 1584; i < Ja; i+= 4)
      dattag++;
    for (i = 1700; i < Ja; i+= 100)
      if ((i % 400) > 0) dattag--;
  }
  if (dattag > 0) {
    if ((Ja % 4) == 0 && Mo > 2 & (Ja < 1582 || (Ja % 100) > 0 || (Ja % 400) == 0)) dattag++;
  }
  return dattag;
}

function datum(dattag) {
  var MonatsTag
  Ja = Math.floor(dattag/365); Ta = dattag-(365*Ja)
  if (dattag < 577718) {
    Ta-= 10;
    for (i = 1580; i >= Ja; i-= 4) Ta++;
  }
  else {
    for (i = 1584; i < Ja; i+= 4) Ta--;
    for (i = 1700; i < Ja; i+= 100) {
      if ((i % 400) > 0) Ta++;
    }
  }
  while (Ta > 365) {
    Ta-= 365;
    if ((Ja % 4) == 0 && (Ja < 1582 || (Ja % 100) > 0 || (Ja % 400) == 0)) Ta--;
    Ja++;
  }
  while (Ta < 1) {
    Ta+= 365;
    Ja--;
    if ((Ja % 4) == 0 && (Ja < 1582 || (Ja % 100) > 0 || (Ja % 400) == 0)) Ta++;
  }
  Mo = 1;
  for (i = 1; i <= 12; i++) {
    MonatsTag = MonatsTage[i];
    if (i == 2)
      if ((Ja % 4) == 0 && (Ja < 1582 || (Ja % 100) > 0 || (Ja % 400) == 0)) MonatsTag = 29;
    if (Ta > MonatsTag) {
      Ta-= MonatsTag;
      Mo++;
    }
    else break;
  }
  datumtxt = WoTag(dattag) + ", " + Ta + "." + Mo + "." + Ja;
  return datumtxt;
}

function WoTag(dattag) {
  wt = (dattag + 25) % 7;
  wota = WochenTag[wt];
  return wota;
}

function ctrlyr(aktjahr)
{
  var realjahr=aktjahr;
  if (realjahr<80) { realjahr+=2000 }
  if (realjahr<200) { realjahr+=1900 }
  return realjahr;
}

function setTagesdatum()
{
  jetzt = new Date();
  jtag = jetzt.getDate();
  jmonat = jetzt.getMonth() + 1; 
  jjahr = ctrlyr(jetzt.getYear());

  anzeigetxt = datum(dattage(jtag, jmonat, jjahr));
  
  return anzeigetxt;
}
