DogPawlowa 0 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Ну, я то не доживу, или буду счастливым маразматиком, а для молодых: при вызове mktime, если в struct tm.tm_year>135, то все поля структуры искажаются. ИАР MSP430 4.21 zltigo, я Ваши функции так и не подключил, а было бы интересно знать, как они работают. Не проверяли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Дык, это же unix time :) Проблема 2038 19 января 2038 года в 03:14:08 по всемирному времени значение переменной типа time_t, отсчитывающей число секунд, прошедших с 1 января 1970 года, достигнет 2^31, что может привести к ошибочной интерпретации этого числа как отрицательного. Так что ни IAR ни zltigo тут не при чём:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Дык, это же ..Проблема 2038 Аааа... Только у меня почему-то раньше, даже в конце 35 наблюдается. :unsure: Ладно, раз уж все собрались ... Подскажите, как вычислить время в следующий понедельник 00:00. Еще нужно время первого числа следующего месяца, но это проще, и сам могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Аааа... Только у меня почему-то раньше, даже в конце 35 наблюдается. :unsure: Ладно, раз уж все собрались ... Подскажите, как вычислить время в следующий понедельник 00:00. Еще нужно время первого числа следующего месяца, но это проще, и сам могу. Может проще новую эру открыть.... и полная перезагрузка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Может проще новую эру открыть.... Увы, у заказчика нет фантазии, он хочет статистику не по эрам, а по неделям и месяцам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Аааа... Только у меня почему-то раньше, даже в конце 35 наблюдается. :unsure: Ну это уже IAR наверное ещё чутка отхватил:) Подскажите, как вычислить время в следующий понедельник 00:00. Еще нужно время первого числа следующего месяца, но это проще, и сам могу. Навскидку, как-то так: time_t find_next_monday() { time_t t = time(0); struct tm * l; do { t += 60*60*24L; l = localtime(&t); } while (l->tm_wday != 1); l->tm_sec = 0; l->tm_min = 0; l->tm_hour = 0; t = mktime(l); return t; } ЗЫ. Интересное время настанет в 38 году. Останутся только программы на Delphi и эксельные таблицы:))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Навскидку, как-то так: Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Спасибо. Да не за что:) Вот так наверное будет оптимальнее, цикл там совершенно лишний: time_t find_next_monday() { time_t t = time(0); struct tm * l; l = localtime(&t); t += 60*60*24L * ((8 - l->tm_wday) % 7); l = localtime(&t); l->tm_sec = 0; l->tm_min = 0; l->tm_hour = 0; t = mktime(l); return t; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба zltigo, я Ваши функции так и не подключил, а было бы интересно знать, как они работают. Не проверяли? Все уже объяснили, но если замените time_t на unsigned long, то будут работать лучше :) и точно позволит избежать прижизненных разборок.... Я последнее время для внутреннего потребления так стал делать, ибо область применения консервативная (все еще модернизируется оборудование середины 80x ) - вдруг какое железо и доживет. Увы, у заказчика нет фантазии, он хочет статистику не по эрам, а по неделям и месяцам. Везет Вам с заказчиком, лунных календарей, или лунно-солнечных от сотворения мира или дня рождения Императора не хотят :) И не надо думать, что такое 23 Элул 5769 :). Вот уж где дурдом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Все уже объяснили, но если замените time_t на unsigned long, то будут работать лучше :) и точно позволит избежать прижизненных разборок.... Что за пессимизм? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 12 сентября, 2009 Опубликовано 12 сентября, 2009 · Жалоба Что за пессимизм? :) Угу. У меня паспорт, действительный по 2058, почему-то приводящий в удивление немецких пограничников. Они не смотрели кино про Маклауда :) если замените time_t на unsigned long, то будут работать лучше Спасибо. Проблема вылезла в менюшке установки времени, раз я там уже учел, то буду ждать апокалипсис, как все :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться