为什么我的打印当前日期时间(C语言)给出不同的答案

vod*_*ang 1 c printf datetime

我想得到当前日期(日,星期一和年).我发现C中有一些函数可以像ctime(获取时间字符串),localtime和gmtime那样执行.我尝试使用以下代码,但输出不同.我得到这个输出:

日期和时间是2010年4月20日星期二(这是正确的)

这一年是: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();
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*lin 7

查看ctiime的手册页 - 年份字段是1900年以来的年份.

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

tm_year
The number of years since 1900.
Run Code Online (Sandbox Code Playgroud)