```
Public Sub NaturalLength(length As Integer, ByRef years As Integer, ByRef months As Integer, ByRef days As Integer)
Dim remain As Double
Dim amount As Double
remain = CType(length, Double)
amount = remain / 365.25
years = Math.Truncate(amount)
remain = remain - years * 365.25
amount = remain / 30.4375
months = Math.Truncate(amount)
remain = remain - months * 30.4375
days = Math.Truncate(remain)
End Sub
Sub Main() ' Just a test
Dim length As Integer = 396
Dim y, m, d As Integer
NaturalLength(length, y, m, d)
Console.WriteLine("Years: {0}, months: {0}, days = {0}", y, m, d)
End Sub
```

By the way:

looks wrong to me.Quote:for example average = 396 my result should be 1 year, 1month and 6days