关于<time.h>中定义的变量:(地位与作用大差不差和int , double , float , char ....差不多)
size_t 是一个无符号整数类型,它是sizeof关键字的结果。
clock_t 是一个适合存储处理器时间的类型。它是一个long int 型,输出时用%ld。
time_t 是一个适合存储日历时间类型。它是一个long long int 型,输出时用%lld。
struct tm 是一个用来保存时间和日期的结构。
其中,struct tm结构的定义如下:
struct tm
{
int tm_sec;//从0到59秒
int tm_min;//从0到59分
int tm_hour;//从0到23时
int tm_mday;//一月中的第几天,从1到31
int tm_mon;//从0到11月
int tm_year;//自1900年起的年数
int tm_wday;//一周中的第几天,从0到6,首位为星期天,为0
int tm_yday;//一年中的第几天,从0到365
int tm_isdst;//夏令时,我国已废弃
};
注意,算某年某月某日...时,若从0开始,则加1;计算某年时,加1900
1、获取系统当前时间:time() //返回的是time_t型
#include<time.h>
#include<stdio.h>
int main()
{
time_t t;
time_t Time=time(&t);
/*
time()是一个函数,括号内填一个参数,叫做传出参数,它要的是一个指针,一般为空NULL;该函数返回的
值是一个time_t类型的.
此时,Time与t的值是一样的,所以一般用NULL,进行简化为:
time_t Time=time(NULL);
*/
printf("%lld",Time);
return 0;
}
输出来的值是1900到现在的秒数。
2、把时间转化为字符串(年月日时分秒):ctime() //返回的是char型
#include<time.h>
#include<stdio.h>
int main()
{
time_t Time=time(NULL);//获取系统当前时间;
puts(ctime(&Time));//将时间和日期转化为字符串
return 0;
}
3、获取当前时间的具体内容(年月日时分秒):localtime() //将秒数转化为struct tm中的tm对象,相当于调用结构体struct tm
#include<time.h>
#include<stdio.h>
int main()
{
time_t Time=time(NULL);//获取系统当前时间;
printf("%lld\n",Time);//从1900到现在的秒数
puts(ctime(&Time));//将时间和日期转化为字符串
struct tm *ptm=localtime(&Time);//转成结构体
printf("year:%d month:%d day:%d\nhour:%d min:%d sec:%d\n%d %d %d\n",
ptm->tm_year+1900,ptm->tm_mon+1 ,ptm->tm_mday ,
ptm->tm_hour,ptm->tm_min,ptm->tm_sec,
ptm->tm_wday,ptm->tm_yday,ptm->tm_isdst ); //wday:一周中的第几天,星期天为0开始算,星期一为1.....;yday:一年的第几天;isdst:不看不看不看,废弃了;
return 0;
}
4、将结构体struct tm转回time_t型:mktime() //返回的是1900到现在的秒数
#include<time.h>
#include<stdio.h>
int main()
{
time_t Time=time(NULL);//获取系统当前时间;
printf("%lld\n",Time);//27583896585790277 从1900到现在的秒数
puts(ctime(&Time));//将时间和日期转化为字符串
struct tm *ptm=localtime(&Time);//转成结构体
printf("year:%d month:%d day:%d\nhour:%d min:%d sec:%d\n%d %d %d\n",
ptm->tm_year+1900,ptm->tm_mon+1 ,ptm->tm_mday ,
ptm->tm_hour,ptm->tm_min,ptm->tm_sec,
ptm->tm_wday,ptm->tm_yday,ptm->tm_isdst ); //wday:一周中的第几天,星期天为0开始算,星期一为1.....;yday:一年的第几天;isdst:不看不看不看,废弃了;
time_t t=mktime(ptm);//从结构体转回去
printf("%lld\n",t);
return 0;
}
5、 将结构体型转化为指向字符串的指针:asctime() //返回的是年月日时分秒
#include<time.h>
#include<stdio.h>
int main()
{
time_t Time=time(NULL);//获取系统当前时间;
printf("%lld\n",Time);//27583896585790277 从1900到现在的秒数
puts(ctime(&Time));//将时间和日期转化为字符串
struct tm *ptm=localtime(&Time);//转成结构体
printf("year:%d month:%d day:%d\nhour:%d min:%d sec:%d\n%d %d %d\n",
ptm->tm_year+1900,ptm->tm_mon+1 ,ptm->tm_mday ,
ptm->tm_hour,ptm->tm_min,ptm->tm_sec,
ptm->tm_wday,ptm->tm_yday,ptm->tm_isdst ); //wday:一周中的第几天,星期天为0开始算,星期一为1.....;yday:一年的第几天;isdst:不看不看不看,废弃了;
time_t t=mktime(ptm);//从结构体转回去
printf("%lld\n",t);
puts(asctime(ptm));
return 0;
}
6、
#include<time.h>
#include<stdio.h>
int main()
{
return 0;
}