Tim heredó una aplicación de Visual Basic anterior a 2000 y escrita antes de VB .Net. El programa añade un solo cero a los años menores que 1000. Para la muerte de Caesar Augustus en 14 AD, produce «014». El formato de cuatro cifras sería «0014». Nunca se almacenaron fechas de ese periodo, y un formateo posterior volvió innecesaria la lógica.
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
Remy Porter recupera el primer proyecto web remunerado de DJ, escrito cuando tenía 19 años. Para elegir un registro de un banner, el código PHP recorr…
Remy Porter analiza código C++ en el que Animal::StealTentacle restringe su comportamiento a Octopus y Squid mediante comprobaciones en tiempo de ejec…
La aplicación parcial de funciones (Partial Function Application) llega con PHP 8.6 y por fin hace que el operador pipe sea cómodo de usar. También es…
Claude Code, Cursor, Codex y el recién liberado como open source Grok Build ahora escriben software rápido. Un preprint de julio que puso a prueba a 8…
Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.