LINUX.ORG.RU

struct tm


0

0

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

int main () {
        struct tm date;
        printf ("\t%d\n",date.tm_year );
        return 0;
}

вот такой вот код , ожидается вывод года , а получается следуюшее 
./date
        134513261

откуда берется это число ? или что я делаю не так ?
anonymous

Для того, чтобы ожидать год, нужно что-то присвоить структуре, а так там ничего нет!

Так устроит?
man 3 strptime

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

int main () {
        struct tm date;
        char buf[255];
        char y[255];

        strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &date);
        strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &date);
        strftime(y, sizeof(y), "%Y", &date);
        printf ("\t%s\n", buf );
        printf ("\t%s\n", y );
}

UVV ★★★★★
()
Ответ на: комментарий от anonymous

$cat date.c 
#include <stdio.h>
#include <time.h>

int main () {
        time_t dro;
        struct tm local;
        time (&dro);
        local = *(localtime(&dro));
        printf ("\tlocal=%d\n", local.tm_year+1900);
}


вот , что вышло .

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