Минимальная реализация алгоритма gmtime? - PullRequest
5 голосов
/ 17 марта 2012

Кто-нибудь знает простую реализацию gmtime или ctime без учета часового пояса, внешних зависимостей и лицензии без авторского лева (BSD / MIT / что-то проприетарное-безопасное)?Предпочтительно в Си, но в основном все, что дает мне алгоритм в его минимальной форме, будет работать.

Мне просто нужны секунды, так как «1 января 1970 00:00:00» разбито на год, день, месяц,ч, мин, секИ в пятницу почти пора домой, поэтому я немного ленивый.

Ответы [ 2 ]

5 голосов
/ 17 марта 2012

Обратный алгоритм, определяющий «секунды с начала эпохи» из POSIX:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_15

tm_sec + tm_min*60 + tm_hour*3600 + tm_yday*86400 +
    (tm_year-70)*31536000 + ((tm_year-69)/4)*86400 -
    ((tm_year-1)/100)*86400 + ((tm_year+299)/400)*86400
2 голосов
/ 17 марта 2012

Попробуйте newlib http://sourceware.org/newlib/ это лицензия BSD.

Он предназначен для встраиваемых систем, поэтому, как правило, довольно маленький и простой.

Посмотрите на Docs -> Timefns, чтобы увидеть, соответствуют ли ctime или gmtime вашим потребностям.

...