\n");}
else {
if ($zinssatz_==null){$zinssatz_='0';}
$zinssatz=intval($zinssatz_);
$zinssatz=round($zinssatz,3);
$zinssatz=$zinssatz/100; //--wird in der Formel benötigt, ist dann einfacher-------
if ($perioden_pro_jahr_==null){$perioden_pro_jahr_='1';}
$perioden_pro_jahr=intval($perioden_pro_jahr_);
if ($barwert_==null){$barwert_='0';}
$barwert=intval($barwert_);
$barwert=round($barwert,2);
if ($land_==null){$land_='usa';}
$land=$land_;
if ($alter_==null){$alter_='0';}
$alter=intval($alter_);
if ($geschlecht_==null){$geschlecht_='m';}
$geschlecht=$geschlecht_; //müßte nicht sein
if ($zahlbar_==null){$zahlbar_='v';}
$zahlbar=$zahlbar_; //müßte nicht sein
if ($rate_==null){$rate_='0';}
$rate=intval($rate_);
$rate=round($rate,2);
if ($aufschub_==null){$aufschub_='0';}
$aufschub=intval($aufschub_);
if ($dauer_==null){$dauer_='0';}
$dauer=intval($dauer_);
if ($land=='deutschland'){$tabelle_sterbetafel='dt_2005_2007';}
if ($land=='oesterreich'){$tabelle_sterbetafel='oesterreich_2000_2002';}
if ($land=='italien'){$tabelle_sterbetafel='suedtirol_2007';}
if ($land=='usa'){$tabelle_sterbetafel='usa_2006';}
if ($land=='ca'){$tabelle_sterbetafel='ca_2000_2002';}
$zahler=0;
$abfrage= "SELECT * FROM " . $tabelle_sterbetafel . " where Geschlecht = '" . $geschlecht . "'";
//$abfrage= "SELECT * FROM dt_2005_2007 where Geschlecht = '" . $geschlecht . "'";
//$abfrage= "SELECT * FROM suedtirol_2007 where Geschlecht = '" . $geschlecht . "'";
$q = mysql_query($abfrage);
//$_SESSION['anzahl_skizzen']=mysql_num_rows($q);
while($r = mysql_fetch_array($q) ){
$alter_tab= $r[Alter];
$lx=$r[lx];
//echo ($lx.'alter='. $alter_tab);
//berechnen von Dx
$teil01=pow((1+$zinssatz),$alter_tab);
$teil02=1/$teil01;
//echo ($alter_tab . '---' . $teil02 . '
');
//$teil01=100/(100+$zinssatz);
//$teil02=pow($teil01,$alter_tab);
//$Dx[$zahler]=$lx*$teil02;
$Dx[$zahler]=$lx*$teil02;
//echo ($alter_tab . ' alter ' . $lx . ' lx ' . $zinssatz . ' zinssatz ' . $Dx[$zahler] . ' Dx
');
$zahler=$zahler+1;
//if ($zahler>3){break;}
}
//Nx berechnen
//$zahler--;
$Nx[$zahler-1]=$Dx[$zahler-1]+$Dx[$zahler];
//echo ('lois ' . $Dx[$zahler-1] . ' Dx ' . $Nx[$zahler-1]. '=NX ' . ($zahler-1).'
');
for($i = $zahler-1; $i >-1; $i--)
{
$Nx[$i]=$Nx[$i+1]+$Dx[$i];
//echo ('NX='.$Nx[$i] . 'Dx='.$Dx[$i].'
');
}
//korrektur bei periodischer, z. B. monatlicher Zahlung
if(($alter!=0) && (($barwert != 0)||($rate!=0))){
$teil_01=($perioden_pro_jahr-1)/(2*$perioden_pro_jahr);
$teil_02=pow($perioden_pro_jahr,2);
$teil_03=6*pow($perioden_pro_jahr,2);
$teil_04=$zinssatz*(1-($zinssatz/2));
$zinskorrektur=$teil_01 + ($teil_02/$teil_03)*$teil_04;
//Beispielrechung normale Leibrente
if ($aufschub==0 && $dauer==0){
$aex=$Nx[$alter]/$Dx[$alter];
//echo ($aex . " " . $zinskorrektur . " " .($aex - $zinskorrektur).'
');
//wenn nachschüssig----
if ($zahlbar=='n'){$aex=$aex-1;}
//echo ('zinskorr='. $zinskorrektur . ' ' .$aex . 'NX='.$Nx[$alter] . 'Dx='.$Dx[$alter].'
');
if($barwert==0){
$barwert=$rate*(($aex-$zinskorrektur)*$perioden_pro_jahr);
$barwert=round($barwert,2);
}else{
$rate=$barwert/(($aex-$zinskorrektur)*$perioden_pro_jahr);
$rate=round($rate,2);
}
}
//bei aufgeschobener Leibrente
elseif ($aufschub>0 && $dauer==0){
$aex=$Nx[$alter+$aufschub]/$Dx[$alter];
//wenn nachschüssig----
if ($zahlbar=='n'){$aex=$aex-1;}
//echo ('zinskorr='. $zinskorrektur . ' ' .$aex . 'NX='.$Nx[$alter] . 'Dx='.$Dx[$alter].'
');
if($barwert==0){
$barwert=$rate*(($aex-$zinskorrektur)*$perioden_pro_jahr);
$barwert=round($barwert,2);
}else{
$rate=$barwert/(($aex-$zinskorrektur)*$perioden_pro_jahr);
$rate=round($rate,2);
}
}
//bei temporärer Leibrente
elseif ($aufschub==0 && $dauer>0){
$aex=($Nx[$alter]-$Nx[$alter+$dauer])/$Dx[$alter];
//wenn nachschüssig----
if ($zahlbar=='n'){$aex=($Nx[$alter+1]-$Nx[$alter+$dauer+1])/$Dx[$alter];}
//echo ('zinskorr='. $zinskorrektur . ' ' .$aex . 'NX='.$Nx[$alter] . 'Dx='.$Dx[$alter].'
');
if($barwert==0){
$barwert=$rate*(($aex-$zinskorrektur)*$perioden_pro_jahr);
$barwert=round($barwert,2);
}else{
$rate=$barwert/(($aex-$zinskorrektur)*$perioden_pro_jahr);
$rate=round($rate,2);
}
}
//bei temporärer und aufgeschobener Leibrente
elseif ($aufschub>0 && $dauer>0){
$aex=($Nx[$alter+$aufschub]-$Nx[$alter+$aufschub+$dauer])/$Dx[$alter];
//wenn nachschüssig----
if ($zahlbar=='n'){$aex=($Nx[$alter+$aufschub+1]-$Nx[$alter+$aufschub+$dauer+1])/$Dx[$alter];}
//echo ('zinskorr='. $zinskorrektur . ' ' .$aex . 'NX='.$Nx[$alter] . 'Dx='.$Dx[$alter].'
');
if($barwert==0){
$barwert=$rate*(($aex-$zinskorrektur)*$perioden_pro_jahr);
$barwert=round($barwert,2);
}else{
$rate=$barwert/(($aex-$zinskorrektur)*$perioden_pro_jahr);
$rate=round($rate,2);
}
}
}
}
?>
|
|||||||||||||||||||
|
|