Почему моя печать текущей даты и времени (язык C) дает другой ответ - PullRequest
1 голос
/ 20 апреля 2010

Я хочу получить текущую дату (день, понедельник и год). Я обнаружил, что в C есть некоторые функции, такие как ctime (получить строку времени), localtime и gmtime. Я попытался с помощью следующего кода, но результат отличается. Я получаю этот вывод:

Дата и время - вторник, 20 апреля 2010 г. (это правильно)

Год: 110

Год: 110.

Кто-нибудь знает почему?

int main(int argc, char** argv)
{   
   time_t now;
   if((now = time(NULL)) == (time_t)-1)
   {
      puts("Failure in getting time");
   }
   else {
      printf("The date and time is: %s\n", ctime(&now));
      printf("The year is: %ld\n", localtime(&now)->tm_year);
      printf("The year is: %ld\n", gmtime(&now)->tm_year);
   }
   getchar();
}

1 Ответ

7 голосов
/ 20 апреля 2010

Посмотрите справочную страницу для ctiime - поле года - это годы с 1900 года.

http://linux.die.net/man/3/ctime

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