Durchschnitt an Tage
stefan
- javascript
Hallo ich habe z.B. folgende Werte als Datum:
20090102
20081012
20080817
20070314
und möchte von diesen Werten nun ein Durchnittlicher Tageswert errechnen. Wie könnte ich das machen?
Viele Grüße
Stefan
Hi!
und möchte von diesen Werten nun ein Durchnittlicher Tageswert errechnen. Wie könnte ich das machen?
?
Du moechtest ein durchschnittliches Datum errechnen?! So frei nach dem Motto am 1.1.2009, 15.8.2008,und am 5.4.2007 hatte ich Schluckauf, also hatte ich im Durchschnitt am 7.4.2008 Schluckauf?!
Du moechtest ein durchschnittliches Datum errechnen?! So frei nach dem Motto am 1.1.2009, 15.8.2008,und am 5.4.2007 hatte ich Schluckauf, also hatte ich im Durchschnitt am 7.4.2008 Schluckauf?!
Nein z.B. seit 5.4.2007 im Durchschnitt alle 56 tage Schluckauf.
Hallo stefan,
kennst du http://de.selfhtml.org/javascript/objekte/date.htm? Über http://de.selfhtml.org/javascript/objekte/date.htm#get_time kannst du Zeitdifferenzen in Sekunden berechnen und daraus dann die Tage.
Gruß, Jürgen
Hallo stefan,
kennst du http://de.selfhtml.org/javascript/objekte/date.htm? Über http://de.selfhtml.org/javascript/objekte/date.htm#get_time kannst du Zeitdifferenzen in Sekunden berechnen und daraus dann die Tage.
Gruß, Jürgen
könnte es so klappen?
function Datumssumme(rDate) {
count=Math.floor((rDate.getTime())/1000)*-1;
count=Math.floor(count/60);
count=Math.floor(count/60);
count=Math.floor(count/24);
var days=count+1 //+1, um den Tag des "Geschehens" mitzurechnen
return days;
}
durchTag += Datumssumme(rDate)/Anzahl der Jahre;
...
Hallo stefan,
könnte es so klappen?
function Datumssumme(rDate) {
count=Math.floor((rDate.getTime())/1000)*-1;
count=Math.floor(count/60);
count=Math.floor(count/60);
count=Math.floor(count/24);
var days=count+1 //+1, um den Tag des "Geschehens" mitzurechnenreturn days;
}durchTag += Datumssumme(rDate)/Anzahl der Jahre;
keine Ahnung. Ich weiß weder was du berechnen willst, noch was "durchtag" und "rDate" sein sollen.
Wenn du die Tage zwischen zwei Datumswerten ermitteln willst, benötigst du die Differenz von getTime von beiden.
Gruß, Jürgen
Hallo stefan,
könnte es so klappen?
function Datumssumme(rDate) {
count=Math.floor((rDate.getTime())/1000)*-1;
count=Math.floor(count/60);
count=Math.floor(count/60);
count=Math.floor(count/24);
var days=count+1 //+1, um den Tag des "Geschehens" mitzurechnenreturn days;
}durchTag += Datumssumme(rDate)/Anzahl der Jahre;
keine Ahnung. Ich weiß weder was du berechnen willst, noch was "durchtag" und "rDate" sein sollen.
Wenn du die Tage zwischen zwei Datumswerten ermitteln willst, benötigst du die Differenz von getTime von beiden.
Gruß, Jürgen
rdate = alle in einer Schleife übergebenen Datumswerte (z.B. 20090102, 20080809, 20080712)
in durchtag sollen nun alle Sekundenwerte addiert werden geteilt durch die Anzahl der Datumswerte (hier 3).
Danach soll der durchtag nun in Tage umgerechnet werden.
Hallo stefan,
rdate = alle in einer Schleife übergebenen Datumswerte (z.B. 20090102, 20080809, 20080712)
mit diesem Format kann Date nichts anfangen. Das müsstest du z.B. in 2009,1,1 umwandeln, also Jahr,Monat,Tag.
Ein Rechenbeispiel:
diff = (new Date(2009,11,1).getTime() - new Date(2009,0,1).getTime())/(1000*60*60*24)
Beachte, dass Monate von 0 bis 11 gehen.
Gruß, Jürgen
Hallo stefan,
rdate = alle in einer Schleife übergebenen Datumswerte (z.B. 20090102, 20080809, 20080712)
mit diesem Format kann Date nichts anfangen. Das müsstest du z.B. in 2009,1,1 umwandeln, also Jahr,Monat,Tag.
Ein Rechenbeispiel:
diff = (new Date(2009,11,1).getTime() - new Date(2009,0,1).getTime())/(1000*60*60*24)
Beachte, dass Monate von 0 bis 11 gehen.
Gruß, Jürgen
und wie kann ich das nun in einer schleife ausdrücken ?
wenn ich verschiede Werte von Datumsdaten habe?
key1 = 20081212, 20081114, 20081019
key2 = 20081212, 20081114, 20081019, 20071212, 20071017
key3 = ......
.....
Diese Funktion habe ich schon erstellt aber es klappt noch nicht.
function Datumssumme(rDate) {
var jahr = parseInt(rDate.substring(0,4));
var monat = parseInt(rDate.substring(4,6));
var tag = parseInt(rDate.substring(6,8));
//var diff = (new Date(jahr,monat,tag).getTime() - new Date(jahr,monat,tag).getTime())/(1000*60*60*24);
var diff = new Date(jahr,monat,tag).getTime()/(1000*60*60*24);
return diff;
}
Hallo stefan,
und wie kann ich das nun in einer schleife ausdrücken ?
hier ein ungetestetes Beispiel:
var Werte = new Array(1,3,4,7,8,10)
var start = Werte[0];
var diff = 0;
for(i=1;i<Werte.length;i++} {
var ende = Werte[i];
diff += ende - start; // Differenz zwischen dem i-ten und dem (i-1)ten Wert
start = ende;
}
var mit_diff = diff / Werte.length;
wenn ich verschiede Werte von Datumsdaten habe?
key1 = 20081212, 20081114, 20081019
key2 = 20081212, 20081114, 20081019, 20071212, 20071017
key3 = ......
.....
die kannst du mit split beim "," zerlegen, dann hast du ein Array mit Datumsdaten.
Diese Funktion habe ich schon erstellt aber es klappt noch nicht.
was klappt nicht?
function Datumssumme(rDate) {
var jahr = parseInt(rDate.substring(0,4));
var monat = parseInt(rDate.substring(4,6));
var tag = parseInt(rDate.substring(6,8));//var diff = (new Date(jahr,monat,tag).getTime() - new Date(jahr,monat,tag).getTime())/(1000*60*60*24);
var diff = new Date(jahr,monat,tag).getTime()/(1000*60*60*24);return diff;
}
wenn ich mich nicht irre, rechnest du da die Tage seit dem 1.1.1970 aus, nicht aber die Differenztage zwischen zwei Tagen.
Gruß, Jürgen