Общеизвестная проблема двухтысячного года беспокоит многих. Например, большинство спутниковых систем функционируют на основе алгоритмов, которые рассчитывают траекторию полета (для связи с наземными станциями) на основе текущей даты. Если же 2000-й год программы слежения воспримут как 1900-й, то для спутников это чревато потерей связи с землей  -  потерей, скорее всего, невосстановимой.

 

Напуганный жуткими прогнозами, я решил провести эксперимент, как принято у нас в стране, на живом человеке, то есть на самом себе. Данную заметку я набирал так: поставил в BIOS таймер на 23 часа 59 минут 31 декабря 1999-го года и перезагрузился. Ничего страшного не случилось. Windows 95 напомнила мне о переходе на летнее время и попыталась оттянуть свидание с таинственным будущим на час, но я не поддался, и смело шагнул... нет, не в XXI век, который, как известно, наступит 1 января 2001 года, а в последний год XX века. Заметка, как вы видите, прекрасно набралась, ради интереса я запустил Internet Explorer, заглянул на http://www.pcweek.ru, затем вышел в псевдоДОС, там время также показывалось, как ему и положено,  -  первый час 2000-го года. Так что большинству “локальных” пользователей, которые работают с Windows, смена даты угрожать не должна.

 

Правда, те, у кого действительно есть серьезные причины опасаться 2000-го года, почему-то опять ведут себя недальновидно. Например, принятая в ВВС США еще в 1994 г. инструкция

 

33-110 требует, чтобы все числовые даты в компьютерных программах их ведомства хранились в формате yyyymmdd. Но почему они повторно наступают на те же грабли?! А что случится в ночь на 31 декабря 9999-го года? Сброс уже в 0000-й год?

 

Как любил говорить один мой знакомый программист, не экономьте на спичках  -  не используйте char вместо int. Ну не пожалейте еще пять-семь байтов на хранение года. Хорошо бы еще для подстраховки добавить по паре разрядиков на месяц и день. И тогда потомки через восемь тысяч лет вспомнят о вас с большой благодарностью.

 

Сергей Бобровский

Версия для печати