Freigeisterhaus Foren-Übersicht
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   NutzungsbedingungenNutzungsbedingungen   BenutzergruppenBenutzergruppen   LinksLinks   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Alternative Zeitrechnung mit JavaScript

 
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
jagy
Herb Derpington III.



Anmeldungsdatum: 26.11.2006
Beiträge: 7275

Beitrag(#822251) Verfasst am: 20.09.2007, 12:05    Titel: Alternative Zeitrechnung mit JavaScript Antworten mit Zitat

Moin,

wie könnte man mit JavaScript eine Datumsanzeige basteln, die eine Zeitrechnung in Tagen, Monaten, Jahren ab einem bestimmten Datum anzeigt?
_________________
INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jagy
Herb Derpington III.



Anmeldungsdatum: 26.11.2006
Beiträge: 7275

Beitrag(#822266) Verfasst am: 20.09.2007, 12:34    Titel: Antworten mit Zitat

kann da mal jemand drüber schauen:

Ich habe hier http://www.html-world.de/program/js_e_4.php folgendes Skript gefunden:

Zitat:



function berechne()
{
a = parseInt(document.form1.jahr.value);
b = parseInt((document.form1.monat.value)-1);
c = parseInt(document.form1.tag.value);
d = parseInt(document.form1.stunden.value);
e = parseInt(document.form1.minuten.value);
f = new Date(a,b,c,d,e);
g = new Date();
minuten = g.getMinutes()-f.getMinutes();
stunden = g.getHours()-f.getHours();
tage = g.getDate()-f.getDate();
monate = g.getMonth()-f.getMonth();
jahre = g.getYear()-f.getYear();
if(minuten<0){minuten = 60+minuten; stunden--;}
if(stunden<0){stunden = 24+stunden; tage--;}
if(tage<0){tage = 30+tage; monate--;}
if(monate<0> 2000){jahre = jahre-2000}
if(jahre > 1900){jahre = jahre-1900}

alert('Sie sind \n'+
'- '+jahre+' Jahre und \n'+
'- '+monate+' Monate und \n'+
'- '+tage+' Tage und \n'+
'- '+stunden+' Stunden und \n'+
'- '+minuten+' Minuten alt.');
}

--------------------------

form name="form1" onsubmit="berechne()">
Tag.Monat.Jahr:
<input>.
<input>.
<input><br>

Stunden.Minuten:
<input>:
<input><br>

<input>
</form>



Das ist ein Skript, das berechnet, wie alt man in Tagen, Monaten und Jahren ist. Jetzt hab ich gedacht, wenn man das etwas umbaut und als "Geburtstag" sozusagen den Tag des Beginns der Zeitrechnung setzt, müsste man das ja eigentlich hinbekommen. Hab ich da richtig gedacht? Folgendes habe ich draus gemacht:


edit: siehe nächste Antwort
_________________
INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!


Zuletzt bearbeitet von jagy am 20.09.2007, 12:55, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jagy
Herb Derpington III.



Anmeldungsdatum: 26.11.2006
Beiträge: 7275

Beitrag(#822275) Verfasst am: 20.09.2007, 12:47    Titel: Antworten mit Zitat

habs noch ein bisschen umgemodelt, so siehts jetzt aus:

<html><head><title>Test</title>
</head>

<script>

function berechne()
{
a = parseInt(document.form1.jahr.value);
b = parseInt((document.form1.monat.value)-1);
c = parseInt(document.form1.tag.value);
d = parseInt(document.form1.stunden.value);
e = parseInt(document.form1.minuten.value);
f = new Date(a,b,c,d,e);
g = new Date();
minuten = g.getMinutes()-f.getMinutes();

stunden = g.getHours()-f.getHours();
tage = g.getDate()-f.getDate();
monate = g.getMonth()-f.getMonth();
jahre = g.getYear()-f.getYear();
if(minuten<0){minuten = 60+minuten; stunden--;}
if(stunden<0){stunden = 24+stunden; tage--;}
if(tage<0){tage = 30+tage; monate--;}
if(monate<0> 2000){jahre = jahre-2000}
if(jahre > 1900){jahre = jahre-1900}



document.write(tage+'.'+monate+'.'+jahre);


}
</script>
<body>


form name="form1" onsubmit="berechne()">
Tag.Monat.Jahr:
input size="3" type="Text" name="tag" value="30">.
input size="3" type="Text" name="monat" value="09">.
input size="5" type="Text" name="jahr" value="1888"><br>

Stunden.Minuten:
input size="3" type="Text" name="stunden" value="01">:
input size="3" type="Text" name="minuten" value="00"><br>

input type="Submit" value="Ok">
/form>


</body></html>


Er nimmt die Daten aus dem <form> und berechnet aber direkt neu und schreibt es dann ins Dokument. Aber irgendwie zeigt er bei mir als Monat -1 an, was ja irgendwie nicht sein kann.
Ich mussteunten die <'s weglassen, weil er es sonst nicht anzeigt.

Außerdem sehe ich gerade, dass es Monate nur mit 30 rechnet und Schaltjahre ignoriert
_________________
INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jagy
Herb Derpington III.



Anmeldungsdatum: 26.11.2006
Beiträge: 7275

Beitrag(#822293) Verfasst am: 20.09.2007, 13:05    Titel: Antworten mit Zitat

jagy hat folgendes geschrieben:
Aber irgendwie zeigt er bei mir als Monat -1 an, was ja irgendwie nicht sein kann.


weiß zwar nicht, was anders war, aber so klappts:

a = parseInt(document.form1.jahr.value);
b = parseInt((document.form1.monat.value)-1);
c = parseInt(document.form1.tag.value);
d = parseInt(document.form1.stunden.value);
e = parseInt(document.form1.minuten.value);
f = new Date(a,b,c,d,e);
g = new Date();
minuten = g.getMinutes()-f.getMinutes();
stunden = g.getHours()-f.getHours();
tage = g.getDate()-f.getDate();
monate = g.getMonth()-f.getMonth();
jahre = g.getYear()-f.getYear();
if(minuten<0){minuten = 60+minuten; stunden--;}
if(stunden<0){stunden = 24+stunden; tage--;}
if(tage<0){tage = 30+tage; monate--;}
if(monate<0> 2000){jahre = jahre-2000}
if(jahre > 1900){jahre = jahre-1900}
_________________
INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jagy
Herb Derpington III.



Anmeldungsdatum: 26.11.2006
Beiträge: 7275

Beitrag(#822295) Verfasst am: 20.09.2007, 13:08    Titel: Antworten mit Zitat

jagy hat folgendes geschrieben:


Außerdem sehe ich gerade, dass es Monate nur mit 30 rechnet und Schaltjahre ignoriert


Könnte man da nicht was mit ner for-Schleife machen?
_________________
INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kolja
der Typ im Maschinenraum
Betreiber



Anmeldungsdatum: 02.12.2004
Beiträge: 16631
Wohnort: NRW

Beitrag(#823575) Verfasst am: 21.09.2007, 22:09    Titel: Antworten mit Zitat

jagy hat folgendes geschrieben:
Könnte man da nicht was mit ner for-Schleife machen?

Ja, man könnte aber auch eine while-Schleife nehmen. Macht echt keinen Unterschied.
_________________
Hard work often pays off after time, but laziness always pays off now.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Impressum & Datenschutz


Powered by phpBB © 2001, 2005 phpBB Group