jak wiadomo w 2000r padło wiele programów, które były pisane na stare systemy win, czy dos.
problem polegał na tym, że programista zapisywał daty w postaci skróconej, żeby zaoszczędzić miejsce:
67 = 1967, 99 = 1999, czyli tylko ostatnie 2 cyfry;
a wtedy w 2000r to się przewinęło o 100 lat do tyłu: 2000 = 1900, 2005 = 1905;
ok.
a ja mam pytanie o innych ograniczeniach, które programiści zapewne nadal używali po 2000r.
np. gettime w c, czy delphi chyba podaje tylko 32 bity w sekundach, zatem to się znowu wyzeruje... chyba wkrótce - kiedy?
time = gettime();
i tu były liczone sekundy od 1970r,
rok ma 365 x 86400 = 31536000 sekund;
tradycyjny long ma 32 bity, limit 2^31, czyli: 2^31 / 31536000 = 68 lat
1970 + 68 = 2038
czyli te programy padną w 2038r, a nawet trochę wcześniej z uwagi na lata przestępne.
W związku z tym pytanie: jak się zabezpieczyć przed tą wpadką,
bez zwiększania rozmiaru danych: ten long = 32 bity ma pozostać?