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

 
 
> перевод даты в юникс секунды, нужен код на си
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
esaulenka
сообщение Aug 25 2015, 07:49
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(zltigo @ Aug 25 2015, 09:38) *
1) послать, как Вы сделали, в википедию совсем ума не надо.

Тем не менее, там есть готовый кусок кода. Работающий.

А написать своё, тесты продумать-сделать-прогнать... У меня часа два займёт. Можно только восхищаться человеком, производительность которого на порядок выше.

Я сам не большой любитель супербиблиотек со встроенной кофеваркой.
Но тут задача - стандартнее придумать сложно, надо брать готовое.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 25 2015, 08:17
Сообщение #6


Гуру
******

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



QUOTE (esaulenka @ Aug 25 2015, 10:49) *
Тем не менее, там есть готовый кусок кода. Работающий.

Да, не заметил под спойлером sad.gif. Хотя, конечно, "кусок кода" еще тот по замороченности на ровном месте, да и писанный под определенное окружение.
Тот кусок, котрый я привел, писал, не поверите sm.gif - в доинтернетовскую эпоху - CCCР был, а интернета не было sm.gif. Просто взял и написал - задача ведь банально-арифметическая. И с тех пор беру его у себя-же и не ищу кто-бы его "изобрел".


--------------------
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 Текстовая версия Сейчас: 27th July 2025 - 15:30
Рейтинг@Mail.ru


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