реклама на сайте
подробности

 
 
> перевод даты в юникс секунды, нужен код на си
super_puper
сообщение Aug 24 2015, 08:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



думал это очень распространено но потратил 2 часа не нашел кода на си для такой типичной операции.

формат: год месяц день минуты секунды перевести в секунды с 1970 года

желательно проверенный красивый код и наверное без циклов)

Сообщение отредактировал super_puper - Aug 24 2015, 09:05
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Aug 24 2015, 19:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (super_puper @ Aug 24 2015, 11:57) *
думал это очень распространено но потратил 2 часа не нашел кода на си для такой типичной операции.

Уже и школьная арифметика не по зубам sad.gif, а так-бы потратили 15 минут и написали:
CODE
    
year -= 1970;
leaps = (year+2)/4;
if( !( (year+70) & 3 )&&( month < 3) )
    --leaps;
days  = year*365 + leaps + monthday[month-1] + (day-1);
utime = days*(24*60*60) + (hour+timezone)*(60*60) + min*60 + sec;

Это если на голом месте, а так вообще сишная time() sm.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
super_puper
сообщение Aug 25 2015, 05:30
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



Цитата(zltigo @ Aug 25 2015, 01:37) *
Уже и школьная арифметика не по зубам sad.gif, а так-бы потратили 15 минут и написали:
Код
    
year -= 1970;
leaps = (year+2)/4;
if( !( (year+70) & 3 )&&( month < 3) )
    --leaps;
days  = year*365 + leaps + monthday[month-1] + (day-1);
utime = days*(24*60*60) + (hour+timezone)*(60*60) + min*60 + sec;

Это если на голом месте, а так вообще сишная time() sm.gif


както кусок кода не полный помоему -- monthday[month-1]??

Сообщение отредактировал super_puper - Aug 25 2015, 05:30
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 25 2015, 06:38
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (super_puper @ Aug 25 2015, 08:30) *
както кусок кода не полный помоему -- monthday[month-1]??

А Вы даже не догадываетсь, что это такое sad.gif sad.gif sad.gif sad.gif
Это таблица количества дней в месяце. Ну хоть ее из календаря заполнили-бы.
CODE
0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334



QUOTE (esaulenka @ Aug 25 2015, 09:17) *
Это называется "велосипедостроение". Бессмысленное и беспощадное.

Как назвать Ваши две реплики я не буду развернуто характиризовать из вежливости. Но,
1) послать, как Вы сделали, в википедию совсем ума не надо.
2) даже помянутая мной сишная функция time() она вообще-то системозависимая - нет операционки с часами реального времени, нет и волшебной функции. Можно, конечно, через две других с заполнением промежуточных структур преобразоваться. Но и самому под голый контроллер написать несложно. И не надо заниматься часами поисками готовых "велосипедных библиотек" соразмерных поискам "чернил для третьего класса". Ну и ЕДИНОЖДЫ написав что-то полезное Вы сможете им пользоваться и в дальнейшем.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016