アットウィキロゴ

35 世代遺族年金

Function gen(ystart As Single, jyo, mi, fi) As Single
Dim year As Single
Dim age As Single
g1 = 0
For year = 5 To 99
age = 100 + year - ystart
h = 1
If age > 99 Then h = 0
If age > 99 Then age = 99
If age < 0 Then h = 0
If age < 0 Then age = 0
g2 = jx(year, age, jyo, mi, fi)
If h = 0 Then g2 = 0
g1 = g1 + g2 / (1 + 0.032) ^ (year - 5)
Next
gen = Int(g1 / 10 ^ 2) / 10 ^ 2
End Function

Function fpen(year As Single, age As Single, jyo) As Single
Dim y1 As Single
Dim t1 As Single
Dim w2 As Single
Dim j1 As Single
Dim j2 As Single
Dim m1 As Single
Dim m2 As Single
Dim m3 As Single
Dim g As Single
Dim s1 As Single
g = 0.021
s1 = (1 + g) ^ (year - 5)
t1 = 300
w2 = 1.8 * 24
n1 = year - age + 100
If n1 < 0 Then n1 = 0
j1 = jyo(n1) / 1000
m1 = 80 * s1 * 3 / 4
m2 = w2 * j1 * t1 * s1
fpen = m1 + m2
End Function
Function mpen(year As Single, age As Single, jyo) As Single
Dim y1 As Single
Dim t1 As Single
Dim w2 As Single
Dim j1 As Single
Dim j2 As Single
Dim m1 As Single
Dim m2 As Single
Dim m3 As Single
Dim g As Single
Dim s1 As Single
g = 0.021
s1 = (1 + g) ^ (year - 5)
t1 = 300
w2 = 1.3 * 21
n1 = year - age + 100
If n1 < 0 Then n1 = 0
j1 = jyo(n1) / 1000
m2 = w2 * j1 * t1 * s1
m1 = 80 * s1 * 3 / 4
mpen = m1 + m2
End Function
Function jx(year As Single, age As Single, jyo, mi, fi)
jx1 = 0
jx1 = jx1 + mpen(year, age, jyo) * mi(year, age)
jx1 = jx1 + fpen(year, age, jyo) * fi(year, age)
jx = jx1
End Function
Private Sub Command1_Click()
Dim year As Single
Dim age As Single
Dim mi(-5 To 99, 0 To 99) As Single
Dim fi(-5 To 99, 0 To 99) As Single
Dim jyo(0 To 199) As Single
Dim jyo2(0 To 99) As Single
Open "c:/simple/gdata/遺族年金受給者.txt" For Input As #1
Do Until EOF(1)
Input #1, a1, a2, a3, a4
year = a1
age = a2
mi(year, age) = a3
fi(year, age) = a4
Loop
Close #1
Open "c:/simple/data/乗数.txt" For Input As #5
Do Until EOF(5)
Input #5, a1, a2
age = a1
jyo(age) = a2
Loop
Close #5
For age = 0 To 27
jyo(age) = jyo(27)
Next
For age = 47 To 199
jyo(age) = jyo(47)
Next
Dim ystart As Single
Open "c:/simple/gdata/世代遺族年金受給額.txt" For Output As #44
For ystart = 0 To 199
Write #44, ystart, gen(ystart, jyo, mi, fi)
Next
Close #44
For ystart = 1 To 199
Debug.Print ystart, gen(ystart, jyo, mi, fi)
Next


End Sub
最終更新:2009年03月02日 00:44