![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Agler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 10.6.2002 Репутация: нет Всего: нет |
Люди! те, кто работал с юниксовой датой, подскажите, как быть с отрицательными значениями?
Простой пример: long val; int dd,mm; struct date dt; struct time tm; val=-222832800; // соответствует 1962 г. 12 мес. 10 число unixtodos(val, &dt, &tm); //--------- После этого в структуре dt: dt.da_day = 126 dt.da_mon = 1 dt.da_year = 1964 Как с этим бороться |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Что-то я сомневаюсь, что этими функциями сих пор пользуются...Ведь в вал помещается кол-во секунд, прошедшее с 70 года, а это бред :\
Код ниже работает unsigned long val; struct date dt; struct time tm; getdate (&dt); gettime (&tm); val = dostounix (&dt, &tm); unixtodos (val, &dt, &tm ); printf ("%d %d %d", dt.da_day, dt.da_mon, dt.da_year ); printf ("\n%d", val ); -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Agler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 10.6.2002 Репутация: нет Всего: нет |
Дело - то не в getdate, с текущей датой всё нормально. Дело в ОТРИЦАТЕЛЬНОЙ ДАТЕ ( year < 1970 ==> val < 0)!!!
PS: А переполнение val назначено на 2038 год, и то при условии long. |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
А ты посмотри, какой val получается после dostounix. И если его потом использовать - то все равно получится бред.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |