C语言time(NULL)是以当前时间为种子,产生随意数。
站在用户的角度思考问题,与客户深入沟通,找到丰润网站设计与丰润网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广、空间域名、网络空间、企业邮箱。业务覆盖丰润地区。
其中,time(NULL)用来获取当前时间,本质上得到的是一个大整数,然后用这个数来随机数。
time()这个函数其实保存的是一个历史时间,所以需要用NULL把这个历史时间清空一下,time()就会自动保存当前时间了。你可以简单的理解为NULL就是给time()初始化。
c语言调用time()函数括号里为什么要用NULL?
time是这样声明的:time_ttime(time_t*timer)
用法是你先自己定义一个time_t变量,让后把变量的地址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t*指向的变量里面
如果你传进来NULL的话,就不保存。
默认得到的是utc时间,即国际标准时间,,,,,,由于存在时区差,所以转成本地时间时会有小时差别,像中国是东8区,即比国际标准时间快8小时
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include stdio.h
#include time.h
int main()
{
time_t t1,t2; //分别声明两种使用方式的赋值对象
t1=time(0); //第一种使用方式
time(t2); //第二种使用方式
printf("t1=%ld\n",t1);
printf("t2=%ld",t2);
return 0;
}
1、time_t // 时间类型(time.h 定义)
struct tm { // 时间结构,time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
time ( rawtime ); // 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( rawtime ); //转为当地时间,tm 时间结构
asctime() // 转为标准ASCII时间格式:
//就是直接打印tm,tm_year 从1900年计算,所以要加1900,月tm_mon,从0计算,所以要加1
2、time函数使用示例
#include stdio.h
#include time.h
int main()
{
time_t rawtime;
struct tm * timeinfo;
time ( rawtime );
timeinfo = localtime ( rawtime );
printf ( "The current date/time is: %s", asctime (timeinfo) );
return 0;
}
头文件time.h \x0d\x0a\x0d\x0a@函数名称: localtime \x0d\x0a函数原型: struct tm *localtime(const time_t *timer) \x0d\x0a函数功能: 返回一个以tm结构表达的机器时间信息 \x0d\x0a函数返回: 以tm结构表达的时间,结构tm定义如下: \x0d\x0astruct tm{ \x0d\x0a int tm_sec; \x0d\x0a int tm_min; \x0d\x0a int tm_hour; \x0d\x0a int tm_mday; \x0d\x0a int tm_mon; \x0d\x0a int tm_year; \x0d\x0a int tm_wday; \x0d\x0a int tm_yday; \x0d\x0a int tm_isdst; \x0d\x0a }; \x0d\x0a参数说明: timer-使用time()函数获得的机器时间 \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0a time_t timer; \x0d\x0a struct tm *tblock; \x0d\x0a timer=time(NULL); \x0d\x0a tblock=localtime(timer); \x0d\x0a printf("Local time is: %s",asctime(tblock)); \x0d\x0a return 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: asctime \x0d\x0a函数原型: char* asctime(struct tm * ptr) \x0d\x0a函数功能: 得到机器时间(日期时间转换为ASCII码) \x0d\x0a函数返回: 返回的时间字符串格式为:星期,月,日,小时:分:秒,年 \x0d\x0a参数说明: 结构指针ptr应通过函数localtime()和gmtime()得到 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0a struct tm t; \x0d\x0a char str[80]; \x0d\x0a t.tm_sec=1; \x0d\x0a t.tm_min=3; \x0d\x0a t.tm_hour=7; \x0d\x0a t.tm_mday=22; \x0d\x0a t.tm_mon=11; \x0d\x0a t.tm_year=56; \x0d\x0a t.tm_wday=4; \x0d\x0a t.tm_yday=0; \x0d\x0a t.tm_isdst=0; \x0d\x0a strcpy(str,asctime(t)); \x0d\x0a printf("%s",str); \x0d\x0a return 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: ctime \x0d\x0a函数原型: char *ctime(long time) \x0d\x0a函数功能: 得到日历时间 \x0d\x0a函数返回: 返回字符串格式:星期,月,日,小时:分:秒,年 \x0d\x0a参数说明: time-该参数应由函数time获得 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0a time_t t; \x0d\x0a time(t); \x0d\x0a printf("Today's date and time: %s",ctime(t)); \x0d\x0a return 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: difftime \x0d\x0a函数原型: double difftime(time_t time2, time_t time1) \x0d\x0a函数功能: 得到两次机器时间差,单位为秒 \x0d\x0a函数返回: 时间差,单位为秒 \x0d\x0a参数说明: time1-机器时间一,time2-机器时间二.该参数应使用time函数获得 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0a time_t first, second; \x0d\x0a clrscr(); \x0d\x0a first=time(NULL); \x0d\x0a delay(2000); \x0d\x0a second=time(NULL); \x0d\x0a printf("The difference is: %f seconds",difftime(second,first)); \x0d\x0a getch(); \x0d\x0a return 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: gmtime \x0d\x0a函数原型: struct tm *gmtime(time_t *time) \x0d\x0a函数功能: 得到以结构tm表示的时间信息 \x0d\x0a函数返回: 以结构tm表示的时间信息指针 \x0d\x0a参数说明: time-用函数time()得到的时间信息 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0achar *tzstr="TZ=PST8PDT"; \x0d\x0aint main() \x0d\x0a{ \x0d\x0a time_t t; \x0d\x0a struct tm *gmt, *area; \x0d\x0a putenv(tzstr); \x0d\x0a tzset(); \x0d\x0a t=time(NULL); \x0d\x0a area=localtime(t); \x0d\x0a printf("Local time is:%s", asctime(area)); \x0d\x0a gmt=gmtime(t); \x0d\x0a printf("GMT is:%s", asctime(gmt)); \x0d\x0a return 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: time \x0d\x0a函数原型: time_t time(time_t *timer) \x0d\x0a函数功能: 得到机器的日历时间或者设置日历时间 \x0d\x0a函数返回: 机器日历时间 \x0d\x0a参数说明: timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0a time_t t; \x0d\x0a t=time(); \x0d\x0a printf("The number of seconds since January 1,1970 is %ld",t); \x0d\x0a return 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: tzset \x0d\x0a函数原型: void tzset(void) \x0d\x0a函数功能: UNIX兼容函数,用于得到时区,在DOS环境下无用途 \x0d\x0a函数返回: \x0d\x0a参数说明: \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0a time_t td; \x0d\x0a putenv("TZ=PST8PDT"); \x0d\x0a tzset(); \x0d\x0a time(td); \x0d\x0a printf("Current time=%s",asctime(localtime(td))); \x0d\x0a return 0; \x0d\x0a}