关于time函数的一些个人理解

头文件 :

#include<time.h> 

time函数的返回值为time_t类型,他会返回从1970-1-1开始到现在所经过的秒数。

  tm结构体,他为我们提供了一些成员去使用,其中year的值为当前的年份与1900年的差值,所以使用时应该 为tm_year + 1900,而且mon的范围为0-11,所以使用时应该 +1。

struct tm {
               int tm_sec;         /* seconds */
               int tm_min;         /* minutes */
               int tm_hour;        /* hours */
               int tm_mday;        /* day of the month */
               int tm_mon;         /* month */
               int tm_year;        /* year */
               int tm_wday;        /* day of the week */
               int tm_yday;        /* day in the year */
               int tm_isdst;       /* daylight saving time */
           };
 

       一般我们常用localtime()函数来使用这些定义好的成员,localtime的定义为 struct tm *localtime(const time_t *timep); 也就是说他的返回值的类型结构体tm的一个指针,其中的形参为一个time_t类型的指针,所以我们想使用localtime函数就需要先定义一个time_t类型的变量。同时也需要一个指针去接受localtime的返回值

time_t tt;

struct tm *timea

因为我们要使用时间,所以要给tt进行初始化,初始化的一般方式为:

tt = time(NULL);

接下来我们让tt成为localtime函数的形参,并且用上面定义的timea去接受他的返回值:

timea = localtime(&tt);

     因为localtime的形参需要的是一个time_t类型的指针,所以我们要对tt进行取地址 &,此时,timea就变成了结构体tm的一个指针,可以直接使用它来指向tm结构体中的成员来进行使用,例如如果我们想打印当前的时间,则可以:

printf("%d-%d-%d %d:%d:%d",timea->tm_year+1900,timea->tm_mon+1,timea->tm_mday,
                            timea->tm_hour,timea->tm_min,timea->tm_sec);

用来打印当前时间。

举个例子:

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

int main(int argc, const char *argv[])
{
	time_t tt;
	struct tm *timee;
	tt = time(NULL);
	timee = localtime(&tt);
	printf("%d-%d-%d %d:%d:%d\n",timee->tm_year+1900,timee->tm_mon+1,timee->tm_mday,timee->tm_hour,timee->tm_min,timee->tm_sec);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值