El problema cabe en pocas líneas. El código verifica si el año es menor que 1000 e inserta un cero. Este relleno—supuestamente para fechas históricas como la fundación de la Tang Dynasty—falla ante cualquier año anterior a 1000 AD. Caesar Augustus murió en 14, lo que produce «014» en lugar de «0014». La aplicación nunca utilizó estas fechas. Un procesamiento posterior con tipos de fecha integrados vuelve esta lógica innecesaria. La notación húngara añade oscuridad; el prefijo vnt permanece sin explicación.

historical-date.vb
mnYear% = CInt(Year(vntDate))
If mnYear% < 1000 Then
msYear$ = "0" & Trim$(CStr(mnYear%))
Else
msYear$ = Trim$(CStr(mnYear%))
End If