stringtranslate.com

problema del año bisiesto

El problema del año bisiesto (también conocido como error del año bisiesto o error del día bisiesto ) es un problema para situaciones de almacenamiento de datos y documentación tanto digitales (relacionadas con la computadora) como no digitales que resulta de errores en el cálculo de qué años son bisiestos. años , o de manipular fechas sin tener en cuenta la diferencia entre años bisiestos y años comunes.

Categorías

Los errores de los años bisiestos normalmente se dividen en dos categorías, según el impacto que puedan tener en el uso en el mundo real: [1]

  1. Aquellos que conducen a condiciones de error, como excepciones, códigos de retorno de error, variables no inicializadas o bucles sin fin.
  2. Aquellos que conducen a datos incorrectos, como problemas uno por uno en consultas de rango o agregación

Ejemplos

Pitón

El siguiente código Python es un ejemplo de un error de año bisiesto de categoría 1. Funcionará correctamente hasta todayque sea el 29 de febrero. Luego, intentará crear un 29 de febrero de un año común, que no existe. El dateconstructor generará un mensaje ValueErrorcon el mensaje "el día está fuera del rango del mes". [2]

desde  fecha y hora  fecha de importación  hoy = fecha . hoy () más tarde = hoy . reemplazar ( año = hoy . año + 1 )        

windows-c++

El siguiente código de Windows C++ es un ejemplo de un error de año bisiesto de categoría 1. Funcionará correctamente hasta que la fecha actual sea el 29 de febrero de un año bisiesto. Luego, se modificará stpara representar el 29 de febrero de un año común, fecha que en realidad no existe. Pasar sta cualquier función que acepte una SYSTEMTIMEestructura como parámetro probablemente fallará.

Por ejemplo, la SystemTimeToFileTimellamada que se muestra aquí devolverá un código de error. Dado que ese valor de retorno no está marcado (lo cual es extremadamente común), esto resultará en ftque no se inicialice. [3]

TIEMPO DEL SISTEMA st ; FILETIME pies ;  GetSystemTime ( & st ); calle . wAño ++ ;SystemTimeToFileTime ( & st , & ft ); 

Microsoft C #

El siguiente código .NET C# es un ejemplo de un error de año bisiesto de categoría 1. Funcionará correctamente hasta dtque sea el 29 de febrero. Luego, intentará crear un 29 de febrero de un año común, que no existe. El DateTimeconstructor lanzará un ArgumentOutOfRangeException. [4]

FechaHora dt = FechaHora . Ahora ; Resultado de Fecha y hora = nueva Fecha y hora ( dt . Año + 1 , dt . Mes , dt . Día );           

javascript

El siguiente código JavaScript es un ejemplo de un error de año bisiesto de categoría 2. Funcionará correctamente hasta dtel 29 de febrero, como el 29/02/2020. Luego intentará establecer el año en 2021. Dado que 2021-02-29 no existe, el Dateobjeto avanzará hasta la siguiente fecha válida, que es 2021-03-01. [5]

var dt = nueva fecha (); dt . setFullYear ( dt . getFullYear () + 1 );      

Mal algoritmo de año bisiesto (muchos idiomas)

El siguiente código es un ejemplo de un error de año bisiesto que se observa en muchos idiomas. Puede causar un impacto de Categoría 1 o de Categoría 2, según para qué se utilice el resultado. Se supone incorrectamente que ocurre un año bisiesto exactamente cada cuatro años. [6]

bool esAñoSalto = año % 4 == 0 ;       

El algoritmo de año bisiesto correcto se explica en Algoritmo de año bisiesto .

Ocurrencias

Ver también

Referencias

  1. ^ Johnson-Pint, Matt. "¿Cuáles son algunos ejemplos de errores de años bisiestos?". Desbordamiento de pila . Consultado el 5 de febrero de 2020 .
  2. ^ Johnson-Pint, Matt. "Python: sustitución del año". Desbordamiento de pila . Consultado el 29 de febrero de 2020 .
  3. ^ Johnson-Pint, Matt. "Manipulación de estructuras Win32 / C++ SYSTEMTIME". Desbordamiento de pila . Consultado el 5 de febrero de 2020 .
  4. ^ Johnson-Pint, Matt. ".NET / C# - Construcción a partir de piezas de fecha". Desbordamiento de pila . Consultado el 5 de febrero de 2020 .
  5. ^ Johnson-Pint, Matt. "JavaScript: adición de años". Desbordamiento de pila . Consultado el 5 de febrero de 2020 .
  6. ^ Johnson-Pint, Matt. "Determinar si un año es bisiesto". Desbordamiento de pila . Consultado el 5 de febrero de 2020 .
  7. ^ Excel supone incorrectamente que el año 1900 es bisiesto. Consultado el 1 de mayo de 2019.
  8. ^ Formatos de archivo XML estándar ECMA-376 / Open Office. Consultado el 10 de septiembre de 2016.
  9. ^ ISO/IEC 29500 / Formatos de archivo XML de Open Office. Consultado el 10 de septiembre de 2016.
  10. ^ Towler, Jim (7 de enero de 1997). "El error del software del año bisiesto genera un error millonario"". El resumen de RIESGOS . 18 (74). Comité ACM de Computación y Políticas Públicas . Consultado el 5 de febrero de 2020 .
  11. ^ "La última picadura del gusanillo". Noticias de la BBC . 5 de enero de 2001.
  12. ^ "Sistemas 7-Eleven afectados por una falla similar al año 2000" . Consultado el 10 de marzo de 2023 .
  13. ^ "El error Y2K afecta al ferrocarril de Noruega a fin de año". 1 de enero de 2001 . Consultado el 10 de marzo de 2023 .
  14. ^ "Inicio: respuestas de Microsoft". Foros.zune.net. Archivado desde el original el 30 de agosto de 2009 . Consultado el 27 de julio de 2011 .
  15. ^ John Herrman (31 de diciembre de 2008). "Los Zunes de 30 GB fallan en todas partes, todos a la vez". Gizmodo.com . Consultado el 27 de julio de 2011 .
  16. ^ Geere, Duncan (31 de diciembre de 2008). "ÚLTIMA HORA: Zunes en todo el mundo afectado por una falla misteriosa: Tech Digest". Techdigest.tv . Consultado el 27 de julio de 2011 .
  17. ^ "Preguntas frecuentes sobre Zune 30". Microsoft . 31 de diciembre de 2008. Archivado desde el original el 2 de enero de 2009 . Consultado el 1 de enero de 2009 .
  18. ^ Zadegan, Bryant (3 de enero de 2009). "Una lección sobre bucles infinitos". AeroXperiencia . Consultado el 5 de enero de 2009 .
  19. ^ "Sony soluciona el error del año bisiesto de PS3". Metro . 2 de marzo de 2010 . Consultado el 10 de octubre de 2019 .
  20. ^ "Los dispositivos de navegación por satélite TomTom afectados por el error del año bisiesto del GPS'". Noticias de la BBC . 3 de abril de 2012 . Consultado el 5 de febrero de 2020 .
  21. ^ Johnson-Pint, Matt (29 de febrero de 2016). "Lista de errores de días bisiestos de 2016". Código de Matt . Consultado el 5 de febrero de 2020 .
  22. ^ "El contratiempo del aeropuerto deja a cientos de pasajeros sin pantalones". El Local (de) . Marzo de 2016 . Consultado el 5 de febrero de 2020 .
  23. ^ Johnson-Pint, Matt (29 de febrero de 2020). "Lista de errores de los días bisiestos de 2020". Código de Matt . Consultado el 9 de marzo de 2020 .
  24. ^ "Lista de errores de días bisiestos de 2024". Código de Matt . 2024-02-29 . Consultado el 29 de febrero de 2024 .
  25. ^ "Los surtidores de gasolina vuelven a estar en línea después de una interrupción de un día atribuida a una falla del año bisiesto". Heraldo de Nueva Zelanda . 2024-03-01 . Consultado el 29 de febrero de 2024 .