Ya se habló de sobra del efecto 2000 hace tiempo: los programas que empleasen dos cifras para las fechas podrían considerar que el año 00 no era el 2000, sino el 1900, y calcular incorrectamente cualquier diferencia entre tiempos, con los problemas que podría conllevar.
Pero también existe el efecto 2038: muchos sistemas actuales están programados en lenguaje C (o alguno de sus "derivados"

y en estos sistemas la forma "habitual" de contar fechas es como segundos transcurridos desde el 1 de enero de 1970.
¿El problema? En un sistema de 32 bits, como son la mayoría de los actuales, el tipo de datos "time_t" usado para guardar fechas equivale a un "long", un entero largo... y el número de segundos que se puede contar acaba en 2038, en la madrugada del 19 de enero. Un ejemplo para probarlo desde C sería éste
#include
#include
int main ()
{
time_t momento;
int i;
momento = 2147483641;
for (i = 0; i < 10; i++) {
momento ++;
printf ( "El instante %ld se convierte en %sn",
momento, ctime ( &momento ) );
}
return 0;
}
Se supone que es C estándar, debería funcionar tanto desde Windows como desde Linux, y su resultado debería ser algo como:
El instante 2147483642 se convierte en Tue Jan 19 04:14:02 2038
El instante 2147483643 se convierte en Tue Jan 19 04:14:03 2038
El instante 2147483644 se convierte en Tue Jan 19 04:14:04 2038
El instante 2147483645 se convierte en Tue Jan 19 04:14:05 2038
El instante 2147483646 se convierte en Tue Jan 19 04:14:06 2038
El instante 2147483647 se convierte en Tue Jan 19 04:14:07 2038
El instante -2147483648 se convierte en (null)
El instante -2147483647 se convierte en (null)
El instante -2147483646 se convierte en (null)
El instante -2147483645 se convierte en (null)
¿La solución? Debería venir "sóla". En sistemas de 64 bits, y si se usa realmente el tipo "time_t", esto debería ocultar los detalles del hardware, y debería bastar con recompilar el fuente para tener una vida muuuucho más larga. Esperemos que en el 2038 no queden muchos equipos con software de 32 bits y/o que no lo hayan previsto...
Y ustedes que opinan?