[Javascript] Wochentag eines bestimmten Datums ermitteln

digiTALE

Lt. Junior Grade
Registriert
Juli 2004
Beiträge
270
Hey,

da ich mich in Javascript nicht so gut auskenne wollte ich ein Script schreiben das mir sagt welcher Wochentag z.B. am 01.01.1999 war.

PHP:
<script type="text/javascript">
<!--
var heute = new Date();
var TagInWoche = new Date(1999, 01, 01);
var Wochentag = new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
document.write(+ 'Wochentag[TagInWoche]');
-->
</script>

Naja hab zwar schon den Anfang gefunden aber so richtig weiter komme ich dann auch nicht. Kann mir bitte jemand helfen !?

mfg digiTALE
 
Zuletzt bearbeitet:
Von SelfHtml hab ich ja das Script her und hab versucht das ein bisschen umzuschreiben aber klappt nich so wie ich das will! Weißhalt nicht wie ich ein bestimmtes Datum einfügen soll damit er mir von dem bestimmten Datum den Wochen Tag ermittelt und anzeigt.

mfg digiTALE
 
Nach sehr langem suchen habe ich doch noch ein Script gefunden, ABER wie kann ich ein Datum intergrieren das das Script mir nur von diesem Datum den Wochentag ausgibt also ohne alert -> sondern document.write?

PHP:
<html>
<head>
<script language="JavaScript">
<!--
function init() {
	var date = document.weekdayform.weekdayinput.value;
	var dd = date.substr(0,2);
	var mm = date.substr(3,2);
	var yyyy = date.substr(6,4);

	if(date.length!=10 || isNaN(dd+mm+yyyy)==1) alert("Falsche Eingabe !");
	else if(yyyy==1582 && mm==10 && dd >4 && dd < 15)
	alert("Datum existiert nicht !");

	else getWeekDay(dd,mm,yyyy);
}

function getWeekDay(dd,mm,yyyy) {
	var month = "312831303130313130313031";
	var days = (yyyy-1)*365 + (dd-1);
	for(var i=0;i<mm-1;i++) days += month.substr(i*2,2)*1;

	if(yyyy>1582 || yyyy==1582 && (mm>10 || mm==10 && dd >4)) days -= 10;

	var leapyears = Math.floor(yyyy / 4);
	if(yyyy%4==0 && mm<3) leapyears--;
	if(yyyy>=1600) {
	leapyears -= Math.floor((yyyy-1600) / 100);
	leapyears += Math.floor((yyyy-1600) / 400);
	if(yyyy%100==0 && mm<3) {
		leapyears++;
		if(yyyy%400==0) leapyears--;
	}
}
days += leapyears;

var week = "SaSoMoDiMiDoFr";
alert(week.substr(days%7*2,2)+",  "+ dd+"."+mm+"."+yyyy);
}
-->
</script>
</head><body>

<form name="weekdayform" action="javascript:init()">
<input name="weekdayinput">
<input type="button" value="Zeige Wochentag" onclick="init()">
</form>

</body></html>

mfg digiTALE
 
Dafür gibt es "innerHTML". ;)
Dies könnte dann so aussehen:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Datumsberechnungs-Beispiel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
function init() {
    var date = document.weekdayform.weekdayinput.value;
    var dd = date.substr(0,2);
    var mm = date.substr(3,2);
    var yyyy = date.substr(6,4);

    if(date.length!=10 || isNaN(dd+mm+yyyy)==1) document.getElementById("ausgabe").innerHTML = 'Falsche Eingabe!';
    else if(yyyy==1582 && mm==10 && dd >4 && dd < 15)
    document.getElementById("ausgabe").innerHTML = 'Datum existiert nicht!';

    else getWeekDay(dd,mm,yyyy);
}

function getWeekDay(dd,mm,yyyy) {
    var month = "312831303130313130313031";
    var days = (yyyy-1)*365 + (dd-1);
    for(var i=0;i<mm-1;i++) days += month.substr(i*2,2)*1;

    if(yyyy>1582 || yyyy==1582 && (mm>10 || mm==10 && dd >4)) days -= 10;

    var leapyears = Math.floor(yyyy / 4);
    if(yyyy%4==0 && mm<3) leapyears--;
    if(yyyy>=1600) {
    leapyears -= Math.floor((yyyy-1600) / 100);
    leapyears += Math.floor((yyyy-1600) / 400);
    if(yyyy%100==0 && mm<3) {
        leapyears++;
        if(yyyy%400==0) leapyears--;
    }
}

days += leapyears;

var week = "SaSoMoDiMiDoFr";
document.getElementById("ausgabe").innerHTML = week.substr(days%7*2,2)+",  "+ dd+"."+mm+"."+yyyy;
}
-->
</script>
</head>

<body>
<form name="weekdayform" action="javascript:init()">
  <input name="weekdayinput">
   <input type="button" value="Zeige Wochentag" onclick="init()">
</form>
<div id="ausgabe"></div>
</body>
</html>

MfG mh1001
 
Zuletzt bearbeitet:
Zurück
Oben