Ну, работать-то оно действительно без особых проблем должно, но некоторые программы наверняка неверную дату будут показывать. Ибо Проблема 2038 дамоклово висит над человечеством.
А в Windows пределы поставлены, потому что должны же они где-то быть.
в винде вобщем-то проблемы 2038 не будет ;) она везде оперирует либо int64 с 0.1мсек от 1601 года (FILETIME), либо явным указанием года-месяца-дня-часа-мин-сек-мсек (SYSTEMTIME)
кстати, у MSDOS будут проблемы в 2107году. Там год хранится в 7 битах, смещение от 1980г. И в MSDN предупреждают: The MS-DOS date format can represent only dates between 1/1/1980 and 12/31/2107.
FILETIME и SYSTEMTIME ? Практически весь. Ибо это заявлено в MSDN, и оно выдаётся/принимается WinAPI. Какой-то другой формат может быть только внутри самой проги для её внутренних нужд.
MSDOS-формат используется только в ДОСовых прогах (не путать с консольными), однако к тому времени MSDOS из винды наверняка выкинут.
Есть техническое объяснение. Какой-то из внутренних форматов времени (причём не винды, а толи в юниксе, толи в досе) считает время в секундах от примерно 79г. Указатель DWORD. Итого, меньше 80 быть не может т.к. отрицательные значения не заложены, а больше 2099 - потому что там вскоре 2^16сек от 1980г как раз истекают.
Но это для внешней совместимости (сама винда не оперирует этим форматом) видимо и для упрощения работы пользователей (чтобы опечатку не допустили в первых двух цифрах года ;) К тому времени нынешняя винда явно будет не нужна (даже коллекционерам - т.к. запустить будет негде - любая нынешняя платформа просто сдохнет к тому времени). А на уровне WinAPI допустим год до 32768 (см. MSDN Library - описание функция времени).
Вот в 2038 будут проблемы с некоторыми юниксовыми прогами (стандарта POSIX). Там время хранится в DWORD signed-int (т.е. 15-бит фактически) в секундах от примерно 80г. Ну и, 19 января 2038, время кончится ;)
Юникс считает время от своего "создания" - 1 января 1970 г. И вот когда счетчик переполнится, и будет та самая "проблема 2038", о которой упомянули выше. Что касается Винды - по-моему, все просто: она требует, чтобы ей сказали, как ей воспринимать даты типа 01.01.12 - как 1912 или 2012..
no subject
Date: 2006-06-22 07:07 pm (UTC)no subject
Date: 2006-06-22 07:14 pm (UTC)пашет вроде:/
хороший юзерпик)
Re: Reply to your comment...
Date: 2006-06-22 07:26 pm (UTC)А в Windows пределы поставлены, потому что должны же они где-то быть.
Re: Reply to your comment...
Date: 2006-06-22 09:12 pm (UTC)она везде оперирует либо int64 с 0.1мсек от 1601 года (FILETIME),
либо явным указанием года-месяца-дня-часа-мин-сек-мсек (SYSTEMTIME)
кстати, у MSDOS будут проблемы в 2107году. Там год хранится в 7 битах, смещение от 1980г. И в MSDN предупреждают: The MS-DOS date format can represent only dates between 1/1/1980 and 12/31/2107.
Re: Reply to your comment...
Date: 2006-06-22 09:21 pm (UTC)Re: Reply to your comment...
Date: 2006-06-22 09:38 pm (UTC)MSDOS-формат используется только в ДОСовых прогах (не путать с консольными), однако к тому времени MSDOS из винды наверняка выкинут.
no subject
Date: 2006-06-22 07:11 pm (UTC)no subject
Date: 2006-06-22 07:13 pm (UTC)no subject
Date: 2006-06-22 07:23 pm (UTC)СР!УВЧ!
Date: 2006-06-22 07:28 pm (UTC)no subject
no subject
Date: 2006-06-23 08:47 am (UTC)no subject
Date: 2006-06-22 07:25 pm (UTC)no subject
Date: 2006-06-22 07:27 pm (UTC)no subject
Date: 2006-06-22 07:31 pm (UTC)no subject
Date: 2006-06-22 08:28 pm (UTC)no subject
Date: 2006-06-22 08:30 pm (UTC)no subject
Date: 2006-06-22 08:32 pm (UTC):/
no subject
Date: 2006-06-22 08:33 pm (UTC)аминь
Date: 2006-06-22 08:34 pm (UTC)...
Re: аминь
Date: 2006-06-22 08:36 pm (UTC)аминь
Date: 2006-06-22 08:42 pm (UTC)Re: аминь
Date: 2006-06-22 08:43 pm (UTC)Re: аминь
Date: 2006-06-22 08:45 pm (UTC)Re: аминь
Date: 2006-06-22 08:48 pm (UTC)no subject
Date: 2006-06-22 09:07 pm (UTC)Re: аминь
Date: 2006-06-22 09:10 pm (UTC)no subject
Date: 2006-06-22 07:31 pm (UTC)Но это для внешней совместимости (сама винда не оперирует этим форматом) видимо и для упрощения работы пользователей (чтобы опечатку не допустили в первых двух цифрах года ;) К тому времени нынешняя винда явно будет не нужна (даже коллекционерам - т.к. запустить будет негде - любая нынешняя платформа просто сдохнет к тому времени). А на уровне WinAPI допустим год до 32768 (см. MSDN Library - описание функция времени).
no subject
Date: 2006-06-22 08:44 pm (UTC)а чё будет в 2056?
я в сообществе так и не понял(
no subject
Date: 2006-06-22 08:54 pm (UTC)Вот в 2038 будут проблемы с некоторыми юниксовыми прогами (стандарта POSIX). Там время хранится в DWORD signed-int (т.е. 15-бит фактически) в секундах от примерно 80г. Ну и, 19 января 2038, время кончится ;)
no subject
Date: 2006-06-22 09:00 pm (UTC)no subject
Date: 2006-06-22 08:57 pm (UTC)Что касается Винды - по-моему, все просто: она требует, чтобы ей сказали, как ей воспринимать даты типа 01.01.12 - как 1912 или 2012..
no subject
Date: 2006-06-22 08:37 pm (UTC)no subject
Date: 2006-06-22 10:38 pm (UTC)no subject
Date: 2006-06-23 01:31 am (UTC)no subject
Date: 2006-06-23 06:03 am (UTC)no subject
Date: 2006-06-23 07:36 am (UTC)