strptime возвращает неожиданные результаты - PullRequest
1 голос
/ 26 октября 2009

Я все еще очень новичок в C и пытаюсь узнать, как использовать strptime, чтобы посмотреть, будет ли он работать для части проекта, но я даже не могу получить то, что кажется очень простым примером, работающим правильно ...

int main()
   {
   struct tm *t;
   t = (struct tm *) malloc(sizeof(struct tm));

   memset(t, 0, sizeof(t));

   if (strptime("12-2009", "%m-%Y", t) != NULL)
      printf("month: %d year: %d\n",t->tm_mon, t->tm_year);

   free(t);
   return 0;
   }

Запуск этой программы дает: « месяц: 11 год: 109 »

Что мне здесь не хватает ??

1 Ответ

4 голосов
/ 26 октября 2009

Это Y2K!

Добавьте 1900 к году. Месяцы 0 проиндексированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...