VB6でも同じだったのですが、例えば 2020/1/1 の1年前の日付計算:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim d1 As Date
d1 = DateAdd("y", -1, #2020/1/1#)
MsgBox("2000/1/1 -> " & d1.ToString, vbOKOnly)
d1 = DateAdd("m", -12, #2020/1/1#)
MsgBox("2000/1/1 -> " & d1.ToString, vbOKOnly)
End Sub
下は、2019/01/01 ですが
上は、そうではありません。
きっちり1年間とするなら、"m"で 12 とし、
"y"は使うべきでないです。