¿ Que es el problema del año 2000 ?
El problema es simplemente de representación e interpretación del año 2000.
El primer problema se deriva que desde hace varios años, se representan los año con dos dígitos; esto se debe a un ahorro en capacidad de memoria, ahorro en espacio de la estructura del archivo de datos o por costumbre, ya que todos asumimos el numero "19" en la cantidad del año y al representar como "00" el año 2000 se crea una confusión entre estas dos fechas.
Esto origina en nuestros sistemas una confusión matemática
por ejemplo:
2000-1999 = 1 año entre fechas.
con la representacion de dos digitos
00 - 99 = -99 .
otra confusión seria que al digitar 00 no saber si se habla del año 2000 ó 1900; aunque como programadores de sistemas como de cuentas por cobrar, ventas o inventarios sabemos que es poco probable que el "00" se refiera al año 1900; aunque nuestro programa asumiría el 1900 y esto nos daria
1900 - 1999 = -99.
Otro problema se refiere al código de programación, cuando programaba en Cobol ( Hace siglos), debiamos validar que el año fuera o no bisiesto; esto lo haciamos si bien recuerdo dividiendo el año entre 4 y si el residuo era cero, el mes de febrero tiene 29 días. Otra regla que existe es que si el año es divisible entre 400, como ocurre con el año 2000, es año bisiesto y esto sucede cada 400 años. Como ven es algo que con la evolucion de los sistemas de programación nos olvidamos de verificar ya que la validación la dejamos en manos de las rutinas internas del compilador de Clipper, como es nuestro caso.
¿ En que afecta a Clipper ?
Si usted creó y utilizo sus bases de datos con clipper asignando a los campos de fecha el tipo DATE no tiene mas que cambiar un poco el codigo fuente de su aplicación. ¿por qué?.
Es muy simple, clipper almacena las fechas con cuatro dígitos para representar el año con el formato yyyy/mm/dd.
Ejemplo:
si usted captura y almacena 01/01/99, internamente clipper escribe 01/01/1999.
el problema ocurre al capturar 01/01/00, clipper interpreta el 00 como 1900
esto sucede porque el byte que utiliza clipper, dbase III+ y fox 2.6 se representa como 00 Hex para 1900 y 2000; es decir, vuelve a empezar.
Soluciones para Clipper ante este problema
Clipper 5.x ante este problema tiene una instrucción