LINUX.ORG.RU
ФорумTalks

День программиста

 


0

1
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(int argc, char const **argv)
{   
    char st[16];
    time_t t;
    struct tm tm = {0};
    int y = 1970;
    if (argc > 1 && (y = atoi(argv[1])) < 1900)
    {   
        fprintf(stderr,"Year *MUST* be an integer >=1900: '%s'\n",argv[1]);
        return 1;
    }
    tm.tm_year = y - 1900;
    tm.tm_mday = 1; 
    t = timegm(&tm) + 255*24*3600;
    (void)gmtime_r(&t,&tm);
    strftime(st,sizeof(st)-1,"%Y-%m-%d",&tm);
    printf("%s\n",st);
    return 0;
}

Всех причастных — с праздником!

Подробности

Перемещено Shaman007 из linux-org-ru

Ответ на: комментарий от Serg_HIS

Я верю в людей :) Но «о ближайших двух с хвостиком десятилетиях» относятся к этому: «Для тех, у кого time_t 32 бита Tue Jan 19 03:14:07 UTC 2038 настанет Конец Света».

KOHb-TPOJIJIbJIEP
()
2 ноября 2017 г.
Ответ на: комментарий от Serg_HIS

И да. Реально твой код не работает. Ну может ближайшую сотню-две лет.

Нет, уже на 2100 отвалится.

h578b1bde ★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.