Lancelot
Lounge-Member
Hai ihr Lieben, ich benötige mal eben eure Hilfe zu einem Thema, bei dem ihr schon mal vor Jahren geholfen habt. Ich hatte einen Zinsrechner zusammengebastelt, der die wichtigsten Berechnungen im zivilrechtlichen Bereich abdeckt. Nun der funzt auch gut, aber der abweichende Zinssatz macht mir Probleme, denn er greift auch auf das Script zum Basiszinssatz zu und das soll er nicht. Bitte helft mir, denn ich stecke seit Tagen damit fest..........:icon8:
Hier das Script:
Hier das Script:
HTML:
<body text="#000000" bgcolor="#FFFFFF" align="left" >
<script TYPE="text/javascript" language="JavaScript">
tmax=new Array (31,29,31,30,31,30,31,31,30,31,30,31);
function check(wert)
{
wert=wert.replace(/,/,".");wert=parseFloat(wert);if (isNaN(wert)) wert=0;
return wert
}
function calculate()
{
if (document.my_calc.tagbeginn.value>tmax[document.my_calc.monatbeginn.selectedIndex])document.my_calc.tagbeginn.value=tmax[document.my_calc.monatbeginn.selectedIndex];
if (document.my_calc.tagende.value>tmax[document.my_calc.monatende.selectedIndex])document.my_calc.tagende.value=tmax[document.my_calc.monatende.selectedIndex];
if ((document.my_calc.jahrbeginn.value%4) && (document.my_calc.monatbeginn.value=="02") && (document.my_calc.tagbeginn.value=="29")) document.my_calc.tagbeginn.value="28";
if ((document.my_calc.jahrende.value%4) && (document.my_calc.monatende.value=="02") && (document.my_calc.tagende.value=="29")) document.my_calc.tagende.value="28";
var Date1 = new Date(document.my_calc.jahrbeginn.value,document.my_calc.monatbeginn.value-1,document.my_calc.tagbeginn.value);
var Date2 = new Date(document.my_calc.jahrende.value,document.my_calc.monatende.value-1,document.my_calc.tagende.value);
ta=Date1.getTime()/10000;
te=1000+Date2.getTime()/10000;
s=check(document.my_calc.betrag.value);document.my_calc.betrag.value=s;
if (document.my_calc.satz[0].checked)z=5;
if (document.my_calc.satz[1].checked)z=8;
if (document.my_calc.satz[2].checked)z=9;
if (document.my_calc.satz[3].checked)z=check(document.my_calc.zssatz.value);document.my_calc.zssatz.value=z;
zs=0
for (i=ta;i<=te;i=i+8640)
{
/*2003*/
if (i>=104137560 && i<105701040)zs=zs+s*(1.97+z)/36500;
if (i>=105701040 && i<107291160)zs=zs+s*(1.22+z)/36500;
/*2004*/
if (i>=107291160 && i<108863280)zs=zs+s*(1.14+z)/36600;
if (i>=108863280 && i<110453400)zs=zs+s*(1.13+z)/36600;
/*2005*/
if (i>=110453400 && i<112016880)zs=zs+s*(1.21+z)/36500;
if (i>=112016880 && i<113607000)zs=zs+s*(1.17+z)/36500;
/*2006*/
if (i>=113607000 && i<115170480)zs=zs+s*(1.37+z)/36500;
if (i>=115170480 && i<116760600)zs=zs+s*(1.95+z)/36500;
/*2007*/
if (i>=116760600 && i<118324080)zs=zs+s*(2.70+z)/36500;
if (i>=118324080 && i<119914200)zs=zs+s*(3.19+z)/36500;
/*2008*/
if (i>=119914200 && i<121486320)zs=zs+s*(3.32+z)/36600;
if (i>=121486320 && i<123076440)zs=zs+s*(3.19+z)/36600;
/*2009*/
if (i>=123076440 && i<124639920)zs=zs+s*(1.62+z)/36500;
if (i>=124639920 && i<126230040)zs=zs+s*(0.12+z)/36500;
/*2010*/
if (i>=126230040 && i<127793520)zs=zs+s*(0.12+z)/36500;
if (i>=127793520 && i<129383640)zs=zs+s*(0.12+z)/36500;
/*2011*/
if (i>=129383640 && i<130947120)zs=zs+s*(0.12+z)/36500;
if (i>=130947120 && i<132537240)zs=zs+s*(0.12+z)/36500;
/*2012*/
if (i>=132537240 && i<134109360)zs=zs+s*(0.12+z)/36600;
if (i>=134109360 && i<135699480)zs=zs+s*(0.12+z)/36500;
/*2013*/
if (i>=135699480 && i<137262960)zs=zs+s*(-0.13+z)/36500;
if (i>=137262960 && i<138853080)zs=zs+s*(-0.38+z)/36500;
/*2014*/
if (i>=138853080 && i<140407920)zs=zs+s*(-0.63+z)/36500;
if (i>=140407920 && i<142006680)zs=zs+s*(-0.73+z)/36500;
/*2015*/
if (i>=142006680 && i<143561520)zs=zs+s*(-0.83+z)/36500;
if (i>=143561520 && i<145160280)zs=zs+s*(-0.83+z)/36500;
/*2016--<*/
if (i>=145160280 && i<146732400)zs=zs+s*(0.12+z)/36600;
if (i>=146732400 && i<148322520)zs=zs+s*(0.12+z)/36600;
/*2017*/
if (i>=148322520 && i<149886000)zs=zs+s*(0.12+z)/36500;
if (i>=149886000 && i<151476120)zs=zs+s*(0.12+z)/36500;
/*2018*/
if (i>=151476120 && i<153039600)zs=zs+s*(0.12+z)/36500;
if (i>=153039600 && i<154629720)zs=zs+s*(0.12+z)/36500;
/*2019*/
if (i>=154629720 && i<156193200)zs=zs+s*(0.12+z)/36500;
if (i>=156193200 && i<160000000)zs=zs+s*(0.12+z)/36500;
}
document.my_calc.timeshift.value=Math.round(1+(te-ta-1000)/8640);
document.my_calc.barzins.value=zs.toFixed(2);
document.my_calc.tageskennzahl1.value=Date1.getTime()/10000;
document.my_calc.datumonatbeginn.value=Date1.toLocaleString();
var s1 = parseFloat(document.getElementById("betrag").value.replace(",", "."));
if (isNaN(s1)) s1 = 0;
var s2 = parseFloat(document.getElementById("barzins").value.replace(",", "."));
if (isNaN(s2)) s2 = 0;
document.getElementById("gesamt").value = (s1 + s2).toFixed(2);
var s4 = parseFloat(document.getElementById("timeshift").value.replace(",", "."));
if (isNaN(s1)) s4 = 0;
var s5 = parseFloat(document.getElementById("barzins").value.replace(",", "."));
if (isNaN(s2)) s5 = 0;
document.getElementById("jahreszins").value = ((s5 / s4) * 365).toFixed(2);
var s6 = parseFloat(document.getElementById("betrag").value.replace(",", "."));
if (isNaN(s1)) s6 = 0;
var s7 = parseFloat(document.getElementById("barzins").value.replace(",", "."));
if (isNaN(s2)) s7 = 0;
document.getElementById("zsgesamt").value = ( s7 / s6 * 100).toFixed(2);
}
function clear()
{
document.my_calc.barzins.value="";
document.my_calc.timeshift.value="";
}
function korrektur()
{
clear_ausgabe();
if (document.my_calc.tagbeginn.value>tmax[document.my_calc.monatbeginn.selectedIndex])document.my_calc.tagbeginn.value=tmax[document.my_calc.monatbeginn.selectedIndex];
if (document.my_calc.tagende.value>tmax[document.my_calc.monatende.selectedIndex])document.my_calc.tagende.value=tmax[document.my_calc.monatende.selectedIndex];
if ((document.my_calc.jahrbeginn.value%4) && (document. my_calc.monatbeginn.value=="02") && (document.my_calc.tagbeginn.value=="29")) document.my_calc.tagbeginn.value="28";
if ((document.my_calc.jahrende.value%4) && (document.my_calc.monatende.value=="02") && (document.my_calc.tagende.value=="29")) document.my_calc.tagende.value="28";
}
</script>
<form name="my_calc" action="">
<div name="zeile1">
<table style="table-layout:fixed">
<tr>
<td width="15%">Betrag </td>
<td width="25%"><input name="betrag" type="text" size="12" maxlength="12" value="0,00" onclick="clear()"></td>
<td></td>
</tr>
<tr>
<td width="25%">Zins über Basiszins</td>
<td>
<input checked name="satz" type="radio" value="true" onclick="clear()"> 5 %
<input name="satz" type="radio" value="false" onclick="clear()"> 8 %
<input name="satz" type="radio" value="false" onclick="clear()"> 9 %
<td></td>
</tr>
<tr><td> </td></tr>
<tr>
<td width="10%"><input name="satz" type="radio" value="false" onclick="clear()"> anderer Zins </td>
<td width="25%"><input name="zssatz" type="text" value="Zinssatz" size="12" maxlength="8"></td>
<td></td>
</tr>
</table>
</div>
<div name="zeile2">
<table style="table-layout:fixed">
<tr>
<td width="15%">Zinsbeginn</td>
<td>
<select name="tagbeginn" size="1" onclick="clear()">
<option value="01" selected>1.</option>
<option value="02">2.</option>
<option value="03">3.</option>
<option value="04">4.</option>
<option value="05">5.</option>
<option value="06">6.</option>
<option value="07">7.</option>
<option value="08">8.</option>
<option value="09">9.</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>
<select name="monatbeginn" size="1" onChange="korrektur()">
<option value="01" selected>Januar</option>
<option value="02">Februar</option>
<option value="03">März</option>
<option value="04">April</option>
<option value="05">Mai</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Dezember</option>
</select>
<select name="jahrbeginn" size="1" onclick="clear()">
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015" selected>2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
</select>
</td>
</tr>
<tr>
<td>Zahlungdatum</td>
<td>
<select name="tagende" size="1" onclick="clear()">
<option value="01">1.</option>
<option value="02">2.</option>
<option value="03">3.</option>
<option value="04">4.</option>
<option value="05">5.</option>
<option value="06">6.</option>
<option value="07">7.</option>
<option value="08">8.</option>
<option value="09">9.</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" selected>31.</option>
</select>
<select name="monatende" size="1" onChange="korrektur()">
<option value="01">Januar</option>
<option value="02">Februar</option>
<option value="03">März</option>
<option value="04">April</option>
<option value="05">Mai</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12" selected>Dezember</option>
</select>
<select name="jahrende" size="1" onclick="clear()">
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015" selected>2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
</select>
</td>
</tr>
</table>
</div>
<div name="zeile3">
<table style="table-layout:fixed">
<tr>
<td width="25%"> </td>
<td width="25%"><input type="button" value="Zinsen errechnen" onclick="calculate()"></td>
<td> </td>
</tr>
</table>
</div>
<div name="ausgabe">
<table style="table-layout:fixed">
<tr>
<td style="center" width="33%">Tage </td><td style="center" width="85%"><input type="text" name="timeshift" size="8" value="" readonly></td>
</tr>
<tr>
<td style="center" width="33%">Zinsen </td><td style="center" width="85%"><input type="text" name="barzins" size="8" value="" readonly> Euro</td>
</tr>
<tr>
<td style="center" width="33%">Gesamtbetrag </td><td style="center" width="85%"><input type="text" width="75%" name="gesamt" size="8" value="" readonly> Euro</td>
</tr>
<!-- wird aus dem Kontext generiert -- Tageskennzahl 01.01. = Kennziffer Jahresbeginn. -- 01.07. Kennziffer Jahresmitte-->
<tr>
<td><input type="hidden" name="tageskennzahl1" size="20"> <input type="hidden" name="datumonatbeginn" size="40"></td>
</tr>
</table>
</form>
</div>
Zuletzt bearbeitet von einem Moderator: