Javascript Rechnungstabelle

Hallo.

Ein Kumpel von mir meinte ich könnte ihm bei seiner hp helfen...

Und dort hat er einen Downloadrechner (bei welcher Verbindung ein download einer bestimmten größe wie lange dauert.

Der Link zu seite ist:
http://lpanimeheaven.de.tl/Downloads.htm
Auf dieser Seite gaaanz unten ist der Rechner.

Und nun der Quellcode:
<!-- präsentiert von kostenlose-javascripts.de --> <script type="text/javascript" language="javascript">
<!--
function MakeArray(n) {
this.length = n;
for (var i = 1; i <= n; i++)
this = 0;
return this;
}

speedVar = new MakeArray(15);
speedVar[1] = "1.1719";
speedVar[2] = "1.7578";
speedVar[3] = "3.5156";
speedVar[4] = "6.8359";
speedVar[5] = "7.8125";
speedVar[6] = "15.6250";
speedVar[7] = "187.9883";
speedVar[8] = "1220.7031";
speedVar[9] = "3295.8984";
speedVar[10] = "5493.1641";
speedVar[11] = "18920.8984";
speedVar[12] = "125";
speedVar[13] = "250";
speedVar[14] = "375";
speedVar[15] = "750";

function compute(form, mult){
for (i=1; i <= 15; i++){
if (form.size.value==null||form.size.value.length==0)
form.size.value=0;
if (form[i+"hour"].value==null||form[i+"hour"].value.length==0)
form[i+"hour"].value=0;
if (form[i+"minute"].value==null||form[i+"minute"].value.length==0)
form[i+"minute"].value=0;
if (form[i+"second"].value==null||form[i+"second"].value.length==0)
form[i+"second"].value=0;
if (mult != 0 && form.size.value != 0){
with (Math){
var speed = speedVar;
var TotalTime = ((form.size.value*mult)/speed);
var TotalHours = floor((TotalTime/3600));
var TotalHoursMod = (TotalTime%3600);
var TotalMin = floor(TotalHoursMod/60);
var TotalMinMod = (TotalHoursMod%60);
var TotalSec = floor(TotalMinMod);
form[i+"hour"].value=TotalHours;
form[i+"minute"].value=TotalMin;
form[i+"second"].value=TotalSec;
}
}
}
return;
}

// End -->
</script>
<p> </p>
<center>
<form>
<table border="4">
<tbody>
<tr>

<td>Dateigrösse? <input type="text" size="10" name="size" /> <input type="button" value="KB" onclick="compute(this.form, 1)" /> <input type="button" value="MB" onclick="compute(this.form, 1024)" /> <input type="button" value="GB" onclick="compute(this.form, 1048576)" /></td>
<td colspan="3">
<div align="center"><center>
<p><strong>Dauer...</strong></p>
</center></div>
</td>

</tr>
<tr>
<th>Deine Internetanbindung</th>
<th>Stunden</th>
<th>Minuten</th>
<th>Sekunden</th>
</tr>

<tr>
<td>9.6 Kb</td>
<td><input type="text" size="6" name="1hour" /></td>
<td><input type="text" size="6" name="1minute" /></td>
<td><input type="text" size="6" name="1second" /></td>
</tr>
<tr>
<td>14.4 Kb</td>

<td><input type="text" size="6" name="2hour" /></td>
<td><input type="text" size="6" name="2minute" /></td>
<td><input type="text" size="6" name="2second" /></td>
</tr>
<tr>
<td>28.8 Kb</td>
<td><input type="text" size="6" name="3hour" /></td>
<td><input type="text" size="6" name="3minute" /></td>

<td><input type="text" size="6" name="3second" /></td>
</tr>
<tr>
<td>56 Kb</td>
<td><input type="text" size="6" name="4hour" /></td>
<td><input type="text" size="6" name="4minute" /></td>
<td><input type="text" size="6" name="4second" /></td>
</tr>

<tr>
<td>ISDN (64 Kb)</td>
<td><input type="text" size="6" name="5hour" /></td>
<td><input type="text" size="6" name="5minute" /></td>
<td><input type="text" size="6" name="5second" /></td>
</tr>
<tr>
<td>ISDN (128 Kb)</td>

<td><input type="text" size="6" name="6hour" /></td>
<td><input type="text" size="6" name="6minute" /></td>
<td><input type="text" size="6" name="6second" /></td>
</tr>
<tr>
<td>DSL 1000</td>
<td><input type="text" size="6" name="12hour" /></td>
<td><input type="text" size="6" name="12minute" /></td>

<td><input type="text" size="6" name="12second" /></td>
</tr>
<tr>
<td>T1 (1.54 Mb)</td>
<td><input type="text" size="6" name="7hour" /></td>
<td><input type="text" size="6" name="7minute" /></td>
<td><input type="text" size="6" name="7second" /></td>
</tr>

<tr>
<td>DSL 2000</td>
<td><input type="text" size="6" name="13hour" /></td>
<td><input type="text" size="6" name="13minute" /></td>
<td><input type="text" size="6" name="13second" /></td>
</tr>
<tr>
<td>DSL 3000</td>

<td><input type="text" size="6" name="14hour" /></td>
<td><input type="text" size="6" name="14minute" /></td>
<td><input type="text" size="6" name="14second" /></td>
</tr>
<tr>
<td>DSL 6000</td>
<td><input type="text" size="6" name="15hour" /></td>
<td><input type="text" size="6" name="15minute" /></td>

<td><input type="text" size="6" name="15second" /></td>
</tr>
<tr>
<td>Cable Modem (10 Mb)</td>
<td><input type="text" size="6" name="8hour" /></td>
<td><input type="text" size="6" name="8minute" /></td>
<td><input type="text" size="6" name="8second" /></td>
</tr>

<tr>
<td>Cable Modem (27 Mb)</td>
<td><input type="text" size="6" name="9hour" /></td>
<td><input type="text" size="6" name="9minute" /></td>
<td><input type="text" size="6" name="9second" /></td>
</tr>
<tr>
<td>T3 (45 Mb)</td>

<td><input type="text" size="6" name="10hour" /></td>
<td><input type="text" size="6" name="10minute" /></td>
<td><input type="text" size="6" name="10second" /></td>
</tr>
<tr>
<td>ATM (155 Mb)</td>
<td><input type="text" size="6" name="11hour" /></td>
<td><input type="text" size="6" name="11minute" /></td>

<td><input type="text" size="6" name="11second" /></td>
</tr>
</tbody>
</table>
</form>
</center> <br />
<br />
<!-- präsentiert von kostenlose-javascripts.de --><script language="JavaScript" src="http://js.stats.de/j/0000016413"></script>
<script language="JavaScript">
rapidstats(16413);
</script>


Nun wollte ich ihn so umschreiben, dass er auch die Tage anzeigt, wenn es über 24 stunden geht.
Dass er ein Feld für die Tage anzeigt, das ging ganz gut. Aber die Berechnung, damit komm ich nicht klar (hab nicht wirklich viel mit java script zu tun, hab noch nicht angefangen es zu lernen)

Das wäre dann soweit ich weiß dieser teil:

function compute(form, mult){
for (i=1; i <= 15; i++){
if (form.size.value==null||form.size.value.length==0)
form.size.value=0;
if (form[i+"hour"].value==null||form[i+"hour"].value.length==0)
form[i+"hour"].value=0;
if (form[i+"minute"].value==null||form[i+"minute"].value.length==0)
form[i+"minute"].value=0;
if (form[i+"second"].value==null||form[i+"second"].value.length==0)
form[i+"second"].value=0;
if (mult != 0 && form.size.value != 0){
with (Math){
var speed = speedVar;
var TotalTime = ((form.size.value*mult)/speed);
var TotalHours = floor((TotalTime/3600));
var TotalHoursMod = (TotalTime%3600);
var TotalMin = floor(TotalHoursMod/60);
var TotalMinMod = (TotalHoursMod%60);
var TotalSec = floor(TotalMinMod);
form[i+"hour"].value=TotalHours;
form[i+"minute"].value=TotalMin;
form[i+"second"].value=TotalSec;
}
}
}
return;
}



Wie ist der denn jetzt umzuschreiben.
Wie man auf die Zahlen (60 und 3600) kommt kann ich mir nur so vorstellen, dass damit die sekunden gemeint sind.
Das was ich bei meinem versuch fabriziert habe war echt nicht mehr schön.



Danke schonmal,

Gruß,

D31~$0u1
 
Statt:
Code:
var TotalHours = floor((TotalTime/3600));
var TotalHoursMod = (TotalTime%3600);
das
Code:
var TotalDays = floor((TotalTime/(24*3600)));
var TotalDaysMod = (TotalTime%(24*3600));
var TotalHours = floor((TotalDaysMod/24));
var TotalHoursMod = (TotalDaysMod%24);
ändern und dann TotalDays noch in deinem Textfeld anzeigen lassen. Hoffe ich habe mich jetzt nicht geirrt und/oder vertippt.
 
Aslo der Quellcode sieht jetzt so aus, aber die Minuten bleiben bei null, die stunden über 300 und es gibt trotzdem 20 tage.

var speed = speedVar;
var TotalTime = ((form.size.value*mult)/speed);
var TotalDays = floor((TotalTime/(24*3600)));
var TotalDaysMod = (TotalTime%(24*3600));
var TotalHours = floor((TotalDaysMod/24));
var TotalHoursMod = (TotalDaysMod%24);
var TotalMin = floor(TotalHoursMod/60);
var TotalMinMod = (TotalHoursMod%60);
var TotalSec = floor(TotalMinMod);
form[i+"day"].value=TotalDays;
form[i+"hour"].value=TotalHours;
form[i+"minute"].value=TotalMin;
form[i+"second"].value=TotalSec;


Hab ich was falsch gemacht, oder was ist los?

Danke schonmal, gruß, D31l~$0u1
 
Zurück
Oben