Problem im Script

B

BlackSmily1

Guest
Hallo,
kann mir mal jemand helfen habe letztes jahr ein script vom Kumpel bekommen seit dem Jahres wechsel zeigt ermir ein fehler an vieleicht kann mir jemand helfen? das wär echt gut. hier der ganze HTML seite
CODE
<HTML><HEAD><title>Die Zeit läuft</title>
<meta name="generator" content="Namo WebEditor v5.0">

<script language=JavaScript>

function start() {
document.form1.day.value = "";
document.form1.month.value = "";
document.form1.year.value = "";
document.form1.age.value = "";
document.form1.months.value = "";
document.form1.weeks.value = "";
document.form1.answer.value = "";
document.form1.hours.value = "";
document.form1.min.value = "";
document.form1.sec.value = "";
document.form1.bday.value = "";
document.form1.milli.value = "";
}
function run() {
var ap;
dd = document.form1.day.value;
mm = document.form1.month.value;
yy = document.form1.year.value;
with(document.form1) {
ap = parseInt(ampm.selectedIndex);
hr = parseInt(hrs.value);
if(hr <= 0 && hr >= 13) {
ap = null;
alert("asdf")
}
}
main="valid";
if ((mm < 1) || (mm > 12) || (dd < 1) || (dd > 31) || (yy < 1) ||(mm == "") || (dd == "") || (yy == ""))
main = "Invalid";
else
if (((mm == 4) || (mm == 6) || (mm == 9) || (mm == 11)) && (dd > 30))
main = "Invalid";
else
if (mm == 2) {
if (dd > 29)
main = "Invalid";
else if((dd > 28) && (!lyear(yy)))
main="Invalid";
}
else
if((yy > 9999)||(yy < 0))
main = "Invalid";
else
main = main;
if(main == "valid") {
function leapyear(a) {
if(((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0))
return true;
else
return false;
}
days = new Date();
gdate = days.getDate();
gmonth = days.getMonth();
gyear = days.getYear();
age = gyear - yy;
if((mm == (gmonth + 1)) && (dd <= parseInt(gdate))) {
age = age;
}
else {
if(mm <= (gmonth)) {
age = age;
}
else {
age = age - 1;
}
}
if(age == 0)
age = age;
document.form1.age.value=" Du bist jetzt " + age + " Jahre alt ";
if(mm <= (gmonth + 1))
age = age - 1;
if((mm == (gmonth + 1)) && (dd > parseInt(gdate)))
age = age + 1;
var m;
var n;
if (mm == 12) { n = 31 - dd; }
if (mm == 11) { n = 61 - dd; }
if (mm == 10) { n = 92 - dd; }
if (mm == 9) { n = 122 - dd; }
if (mm == 8) { n = 153 - dd; }
if (mm == 7) { n = 184 - dd; }
if (mm == 6) { n = 214 - dd; }
if (mm == 5) { n = 245 - dd; }
if (mm == 4) { n = 275 - dd; }
if (mm == 3) { n = 306 - dd; }
if (mm == 2) { n = 334 - dd; if(leapyear(yy)) n = n + 1; }
if (mm == 1) { n = 365 - dd; if (leapyear(yy)) n = n + 1; }
if (gmonth == 1) m = 31;
if (gmonth == 2) { m = 59; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 3) { m = 90; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 4) { m = 120; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 5) { m = 151; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 6) { m = 181; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 7) { m = 212; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 8) { m = 243; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 9) { m = 273; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 10) { m = 304; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 11) { m = 334; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 12) { m = 365; if (leapyear(gyear)) m = m + 1; }
totdays = (parseInt(age) * 365);
totdays += age / 4;
totdays = parseInt(totdays) + gdate + m + n;
document.form1.answer.value = "" + totdays +" Tage ";
months = age * 12;
months += 12 - parseInt(mm);
months += gmonth;
document.form1.months.value = months + " Monate ";
if (gmonth == 1) p = 31 + gdate;
if (gmonth == 2) { p = 59 + gdate; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 3) { p = 90 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 4) { p = 120 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 5) { p = 151 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 6) { p = 181 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 7) { p = 212 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 8) { p = 243 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 9) { p = 273 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 10) { p = 304 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 11) { p = 334 + gdate; if (leapyear(gyear)) p = p + 1; }
if (gmonth == 12) { p = 365 + gdate; if (leapyear(gyear)) p = p + 1; }
weeks = totdays / 7;
weeks += " weeks";
weeks = parseInt(weeks);
document.form1.weeks.value = weeks + " Wochen ";
var time = new Date();
ghour = time.getHours();
gmin = time.getMinutes();
gsec = time.getSeconds();
hour = ((age * 365) + n + p) * 24;
hour += (parseInt(age / 4) * 24);
if(ap == 0)
hour = hour - hr;
else {
if(ap == 1) {
hour = hour - (11 + hr)
}
}
document.form1.hours.value = hour + " Stunden ";
var min;
min = (hour * 60) + gmin;
document.form1.min.value = min + " Minuten ";
sec = (min * 60) + gsec;
document.form1.sec.value = sec + " Sekunden ";
var millisec;
var gmil;
gmil = days.getMilliseconds();
millisec = (sec * 1000) + gmil;
document.form1.milli.value = millisec + " Millisekunden ";
mm = mm - 1;
var r;
if(mm == 0) r = 1;
if(mm == 1) r = 31;
if(mm == 2) { r = 59; if (leapyear(gyear)) m = m + 1; }
if(mm == 3) { r = 90; if (leapyear(gyear)) r = r + 1; }
if(mm == 4) { r = 120; if (leapyear(gyear)) r = r + 1; }
if(mm == 5) { r = 151; if (leapyear(gyear)) r = r + 1; }
if(mm == 6) { r = 181; if (leapyear(gyear)) r = r + 1; }
if(mm == 7) { r = 212; if (leapyear(gyear)) r = r + 1; }
if(mm == 8) { r = 243; if (leapyear(gyear)) r = r + 1; }
if(mm == 9) { r = 273; if (leapyear(gyear)) r = r + 1; }
if(mm == 10) { r = 304; if (leapyear(gyear)) r = r + 1; }
if(mm == 11) { r = 334; if (leapyear(gyear)) r = r + 1; }
if(mm == 12) { r = 365; if (leapyear(gyear)) r = r + 1; }
mm = mm + 1;
r = parseInt(r) + parseInt(dd);
if( mm > (gmonth + 1)) {
bday = r - m - gdate;
}
else {
if(mm == (gmonth + 1) && (gdate < dd)) {
bday = (r - m - gdate);
}
else {
if((leapyear(gyear)) && ((mm > 2) && (dd < 29))) {
a = 366;
}
else {
a = 365;
}
bday = a + (r - m - gdate);
}
}
nhour = 24-parseInt(ghour);
nmin = 60 - parseInt(gmin);
nsec = 60 - parseInt(gsec);
go();
if(((bday == 366) && (leapyear(yy))) || ((bday == 365) && (!leapyear(yy)))) {
document.form1.bday.value = "Heute ist DEIN Geburtstag";
alert("Happy Birthday");
} else {
document.form1.bday.value = bday + " Tage " + nhour + " Stunden " + nmin + " Minuten " + nsec + " Sekunden ";
setTimeout("run()", 1);
}
function go() {
function lyear(a) {
if(((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0)) return true;
else return false;
}
mm = parseInt(mm);
dd = parseInt(dd);
yy = parseInt(yy);
if ((mm < 1) || (mm > 12) || (dd < 1) || (dd > 31) || (yy < 1) ||(mm == " ") || (dd == " ") || (yy == " ")) main="Invalid";
else
if (((mm == 4) || (mm == 6) || (mm == 9) || (mm == 11)) && (dd > 30)) main = "Invalid";
else
if (mm == 2) {
if (dd > 29)
main = "Invalid";
else
if(( dd > 28) && (!lyear(yy)))
main = "Invalid";
}
else main = main;
if(main == "valid") {
var m;
if (mm == 1) n = 31;
if (mm == 2) n = 59 + 1;
if (mm == 3) n = 90 + 1;
if (mm == 4) n = 120 + 1;
if (mm == 5) n = 151 + 1;
if (mm == 6) n = 181 + 1;
if (mm == 7) n = 212 + 1;
if (mm == 8) n = 243 + 1;
if (mm == 9) n = 273 + 1;
if (mm == 10) n = 304 + 1;
if (mm == 11) n = 334 + 1;
if (mm == 12) n = 365 + 1;
if((mm == 1)||(mm == 3)||(mm == 5)||(mm == 7)||(mm == 8)||(mm == 10)||(mm == 12))
n += 31 + dd;
else if((mm == 4)||(mm == 6)||(mm == 9)||(mm == 11))
n += 31 + dd + 1;
else if(mm == 2) {
if(lyear(yy)) n += 29 + dd - 3;
else if(!lyear(yy)) n += 28 + dd - 1;
}
fours = yy / 4;
hunds = yy / 100;
fhunds = yy / 400;
var day;
day = (yy + n + fours - hunds + fhunds) % 7;
day = parseInt(day)
switch(day)
{
case 1 : document.form1.age.value +=" und wurdest geboren an einem : Sonntag"
break
case 2 : document.form1.age.value +=" und wurdest geboren an einem : Montag"
break
case 3 : document.form1.age.value +=" und wurdest geboren an einem : Dienstag"
break
case 4 : document.form1.age.value +=" und wurdest geboren an einem : Mittwoch"
break
case 5 : document.form1.age.value +=" und wurdest geboren an einem : Donnerstag"
break
case 6 : document.form1.age.value +=" und wurdest geboren an einem : Freitag"
break
case 7 : document.form1.age.value +=" und wurdest geboren an einem : Samstag"
break
case 0 : document.form1.age.value +=" und wurdest geboren an einem : Samstag"
break
}
}
else {
document.form1.age.value += main + " Date";
}
}
}
else {
document.form1.age.value = main + " Date";
document.form1.months.value = "";
document.form1.weeks.value = "";
document.form1.answer.value = "";
document.form1.hours.value = "";
document.form1.min.value = "";
document.form1.sec.value = "";
document.form1.bday.value = "";
document.form1.milli.value = "";
}
}
// End -->
</SCRIPT>
</head>

<BODY text="silver" link="red" bgProperties=fixed background="bg1.gif" vlink="gray" alink="#FE8B5A" >

<h1 align="center"><FONT color=#FF0000><FONT face="Monotype Corsiva">Die Zeit läuft!</FONT></FONT></h1>

<HR>
<CENTER><B>Bitte Geburtsdaten eingeben:</B><FORM name=form1>
<P>
<B>Tag </B><SELECT name="day" size="1">
<option value=""> </option>
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</SELECT>
<B>Monat</B><SELECT name="month" size="1">
<option value=""> </option>
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</SELECT>
<B>Jahr</B><SELECT name="year" size="1">
<option value=""> </option>
<option value="1904">1904</option><option value="1905">1905</option><option value="1906">1906</option>
<option value="1907">1907</option><option value="1908">1908</option><option value="1909">1909</option>
<option value="1910">1910</option><option value="1911">1911</option><option value="1912">1912</option>
<option value="1913">1913</option><option value="1914">1914</option><option value="1915">1915</option>
<option value="1916">1916</option><option value="1917">1917</option><option value="1918">1918</option>
<option value="1919">1919</option><option value="1920">1920</option><option value="1921">1921</option>
<option value="1922">1922</option><option value="1923">1923</option><option value="1924">1924</option>
<option value="1925">1925</option><option value="1926">1926</option><option value="1927">1927</option>
<option value="1928">1928</option><option value="1929">1929</option><option value="1930">1930</option>
<option value="1931">1931</option><option value="1932">1932</option><option value="1933">1933</option>
<option value="1934">1934</option><option value="1935">1935</option><option value="1936">1936</option>
<option value="1937">1937</option><option value="1938">1938</option><option value="1939">1939</option>
<option value="1940">1940</option><option value="1941">1941</option><option value="1942">1942</option>
<option value="1943">1943</option><option value="1944">1944</option><option value="1945">1945</option>
<option value="1946">1946</option><option value="1947">1947</option><option value="1948">1948</option>
<option value="1949">1949</option><option value="1950">1950</option><option value="1951">1951</option>
<option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option>
<option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option>
<option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option>
<option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option>
<option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option>
<option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option>
<option value="1970" selected>1970</option><option value="1971">1971</option><option value="1972">1972</option>
<option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option>
<option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option>
<option value="1979">1979</option><option value="1979">1979</option><option value="1980">1980</option>
<option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option>
<option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option>
<option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option>
<option value="1990">1990</option><option value="1991">1991</option><option value="1991">1991</option>
<option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option>
<option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option>
<option value="1998">1998</option><option value="1999">1999</option><option value="2000">2000</option>
</SELECT>
<B>Stunde</B><INPUT size=6 value=00 name=hrs> <SELECT size=1
name=ampm>
<OPTION selected></OPTION>
<OPTION>AM</OPTION>
<OPTION>PM</OPTION>
</SELECT>   </P>
</CENTER>
<p align="center">  <INPUT onclick=run() type=button value="Berechnung !" name=start> <BR><BR><INPUT size=70 name=age> <BR><B>So lange
hast Du schon gelebt:</B></p>
<CENTER><TABLE borderColor=0099ff bgColor=#00ffff border=6 width="353">


<TD align=right width="129"><B><font color="black">Monate: </font></B></TD>
<TD width="198"><INPUT size=30 name=months></TD></TR>

<TD align=right width="129"><B><font color="black">Wochen: </font></B></TD>
<TD width="198"><INPUT size=30 name=weeks></TD></TR>

<TD align=right width="129"><B><font color="black">Tage: </font></B></TD>
<TD width="198"><INPUT size=30 name=answer></TD></TR>
<TR>
<TD align=right width="129"><B><font color="black">Stunden: </font></B></TD>
<TD width="198"><INPUT size=30 name=hours></TD></TR>
<TR>
<TD align=right width="129"><B><font color="black">Minuten: </font></B></TD>
<TD width="198"><INPUT size=30 name=min></TD></TR>
<TR>
<TD align=right width="129"><B><font color="black">Sekunden: </font></B></TD>
<TD width="198"><INPUT size=30 name=sec></TD></TR>
<TR>
<TD align=right width="129"><B><font color="black">Millisekunden: </font></B></TD>
<TD width="198"><INPUT size=30
name=milli></TD></TR></TBODY></TABLE><B>                               Dein
nächster Geburtstag wird sein in :   
              
          
</B><BR>
<INPUT size=45 name=bday></FORM></CENTER>
<p> </p>
<p align="center"><span style="font-size:20pt;">Jetzt Überlege doch mal, was du schon geschaft
hast in deinem Leben!</span></p>

<HR>
<center><FONT size=-2>Copyright © 2004 by <A href="mailto:webmaster@mysterium-licht.de">Mysterium-Licht.de</A>.</FONT>

<div id="layer3" style="width:83px; height:48px; position:absolute; left:10px; top:57px; z-index:1;">
<p><a href="Willkommenzurueck.htm">Startseite</a></p>
</div>

</BODY>
</HTML>



Oder hier auf der seite testen

http://www.mysterium-licht.de/DieZeitlauft.htm

Bitte wenn jemand den Fehler findet bitte eine Mail senden bin leider nicht so oft online "webmaster@mysterium-licht.de"

Vielen Dank im Voraus.

P.s. FehlerMeldung bei eingabe des geburtsdatum und berechnen drücken.
 
Zeile 132 Zeichen 1, p ist undefiniert. NaN heisst not a number.
Schon mal daran gedacht Zeile 132 anzuschauen?

Da bei Monate schon NaN steht, wissen wir, dass sie keine Zahl enthält, auch sie wird in Abhängigkeit von gmonth definiert, was date.getMonth() ist. Ergo ist gmonth <1 oder >12. IdR fangen Informatiker bei 0 an zu zählen. Ich vermute der Fehler liegt dort. Nachschauen mit Google: http://www.intellidimension.com/default.rs...te_getmonth.rsp

Aha ;-)

QUOTE if (gmonth == 0) m = 31;
if (gmonth == 1) { m = 59; if (leapyear(gyear)) m = m + 1; }
if (gmonth == 2) { m = 90; if (leapyear(gyear)) m = m + 1; }
....


Evtl. wäre es einfach den Fehler in der Zeile 56 mit gmonth = days.getMonth() + 1; zu beheben.
 
Hallo ,
Habe es versucht aber leider nicht das Resoltat erziehlt, das ich wollte. Problem beit nicht bestehen aber es erscheint ein neues problem, dass er die Ausgangsdaten die Berechnung zum neuen Geburtstag ein Zeitfehler beinhalte.

Trotzdem vielen dank.

BlackSmily1
 
Nichts für Ungut, aber hat das Script überhaupt mal funktioniert?

Die ang. Änderung behebt das Problem der Monate:

gmonth = days.getMonth() + 1;

Da aber mit age = days.getYear() - Geburtsjahr, hammerhart die Jahre seit Christi Geburt (der Charakter) von denen seit 1900 subtrahiert werden, erstaunt es mich nicht, dass ich -1800 Jahre alt bin.

gyear = days.getYear() + 1900;

löst das Problem, wobei aber Browser unteschiedlich reagieren können.

Mit diesen beiden Änderungen fkt es bei mit.
 
Das ist ja das komische der Script hat schon mal Funktioniert! Stell einfach mal deine Rechner zeit auf 27.12.2004 und gib als Geburtsdatum den 27.12.1982 da funktioniert noch alles. Auch bei alle anderen Daten.
Mit freundlichen Gruß
 
ich würds einfach nochmal neu schreiben und nen bissel übersichtlicher
wink.gif
 
Zurück
Oben