c语言时间函数怎么用?C语言中的time函数的参数

牵着乌龟去散步 万象 36

各位老铁们好,相信很多人对c语言时间函数怎么用都不是特别的了解,因此呢,今天就来为大家分享下关于c语言时间函数怎么用以及C语言中的time函数的参数的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

  1. c语言 时间函数
  2. C语言中 *** 时间函数是怎么用的
  3. c语言sleep函数怎么用
  4. 请问C语言中clock()函数该怎么用
  5. C语言中获取时间的 *** 是什么

一、c语言 时间函数

可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t* timer);

如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:

这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?

其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:

struct tm* gmtime(const time_t*timer);

struct tm* localtime(const time_t* timer);

其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。

二、C语言中 *** 时间函数是怎么用的

1、C语言中读取 *** 时间的函数为time(),其函数原型为:

time_t就是long,函数返回从1970年1月1日(MFC是 *** 9年12月31日)0时0分0秒,到现在的的秒数。

2、C语言还提供了将秒数转换成相应的时间格式的函数:

char* ctime(const time_t*timer);//将日历时间转换成本地时间,返回转换后的字符串指针可定义字符串或是字符指针来接收返回值

struct tm* gmtime(const time_t*timer);//将日历时间转化为世界标准时间(即格林尼治时间),返回结构体指针可定义struct tm*变量来接收结果

struct tm* localtime(const time_t* timer);//将日历时间转化为本地时间,返回结构体指针可定义struct tm*变量来接收结果

pc=ctime(&t);printf("ctime:%s",pc);

pt=localtime(&t);printf("year=%d",pt->tm_year+1900);

inttm_sec;/*秒–取值区间为[0,59]*/

inttm_min;/*分-取值区间为[0,59]*/

inttm_ho *** ;/*时-取值区间为[0,23]*/

inttm_mday;/*一个月中的日期-取值区间为[1,31]*/

inttm_mon;/*月份(从一月开始,0 *** 一月)-取值区间为[0,11]*/

inttm_year;/*年份,其值等于实际年份减去1900*/

inttm_wday;/*星期–取值区间为[0,6],其中0 *** 星期天,1 *** 星期一,以此类推*/

inttm_yday;/*从每年的1月1日开始的天数–取值区间为[0,365],其中0 *** 1月1日,1 *** 1月2日,以此类推*/

inttm_isdst;/*夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/

三、c语言sleep函数怎么用

用法: unsi *** ed sleep(unsi *** ed seconds);

1.在VC中使用带上头文件#include<windows.h>,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include<unistd.h>

c语言时间函数怎么用?C语言中的time函数的参数-第1张图片-

2.在VC中,Sleep中的之一个英文字符为大写的"S",在linux下不要大写,在标准C中是sleep,不要大写,简单的说VC用Sleep,别的一律使用sleep。

3.在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);在Linux下,sleep()里面的单位是秒,而不是毫秒。

功能:usleep功能把进程挂起一段时间,单位是微秒us(百万分之一秒)。

语法: void usleep(int micro_seconds);

注意:这个函数不能工作在 Windows *** 作 *** 中。

usleep()与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。且此函数已被废除,可使用nanosleep。

如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能更佳的利用CPU时间。

功能:将程序的执行暂停一段时间,单位是毫秒ms(千分之一秒)

用法: void delay(unsi *** ed milliseconds);

delay()是循环等待,该进程还在运行,占用处理器。

sleep()不同,它会被挂起,把处理器让给其他的进程。

四、请问C语言中clock()函数该怎么用

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。

它的具体功能是返回处理器调用某个进程或函数所花费的时间。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型。

在time.h文件中,我们可以找到对它的定义:

clock_t其实就是long,即长整形。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可。

1、编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0。

2、clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少。

3、建议使用time gettimeofday函数来计时。

C语言中clock()函数的程序例1:(TC下运行通过)

printf("Thetimewas:%f\n",(double)(end-start)/CLK_TCK);

说明:CLK_TCK定义在TC中的time.h中:#defineCLK_TCK18.2。

在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2,而是1000。

实际上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。

参考资料来源:百度百科-clock()

五、C语言中获取时间的 *** 是什么

1、函数包括一系列日期和时间处理函数,它们都在头文件中说明。下面列出了这些函数。在头文件中定义了三种类型:time_t,struct tm和clock_t。

2、double difftime(time_t time1,time_t time2);

3、struct tm*gmtime(const time_t*timer);

4、struct tm*localtime(const time_t*timer);

5、char*asctime(const struct tm*timeptr);

6、char*ctime(const time_t*timer);

7、size_t strftime(char*s,size_t *** xsize,const char*for *** t,const struct tm*timeptr);

8、time_t mktime(struct tm*timeptr);

9、下面是我从网上收集到的时间函数集

10、asctime(将时间和日期以字符串格式表示)

11、time,ctime,gmtime,localtime

12、char* asctime(const struct tm* timeptr);

13、asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示 *** ,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为:"Wed Jun 30 21:49:08 1993&# *** ;n"

14、若再调用相关的时间日期函数,此字符串可能会被 *** 。此函数与ctime不同处在于传入的参数是不同的结构。

15、返回一字符串表示目前当地的时间日期。

16、printf("%s",asctime(gmtime(&timep)));

17、ctime(将时间和日期以字符串格式表示)

18、time,asctime,gmtime,localtime

19、char*ctime(const time_t*timep);

20、ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示 *** ,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为"Wed Jun 30 21:49:08 1993&# *** ;n"。若再调用相关的时间日期函数,此字符串可能会被 *** 。

21、返回一字符串表示目前当地的时间日期。

22、gettimeofday(取得目前的时间)

23、time,ctime,ftime,settimeofday

24、int gettimeofday( struct timeval* tv, struct timezone* tz)

25、gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中。

26、int tz_minuteswest;/*和Greenwich时间差了多少分钟*/

27、int tz_dsttime;/*日光节约时间的状态*/

28、上述两个结构都定义在/usr/include/sys/time.h。tz_dsttime所 *** 的状态如下

29、DST_AUSTALT/*澳洲(1986年以后)*/

30、成功则返回0,失败返回-1,错误代码存于errno。附加说明EFAULT指针tv和tz所指的内存空间超出存取权限。

31、printf("tv_sec;%d&# *** ;n", tv,.tv_sec);

32、printf("tv_usec;%d&# *** ;n",tv.tv_usec);

33、printf("tz_minuteswest;%d&# *** ;n", tz.tz_minuteswest);

34、printf("tz_dsttime,%d&# *** ;n",tz.tz_dsttime);

35、struct tm*gmtime(const time_t*timep);

36、gmtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示 *** ,然后将结果由结构tm返回。

37、int tm_sec *** 目前秒数,正常范围为0-59,但允许至61秒

38、int tm_min *** 目前分数,范围0-59

39、int tm_ho *** 从午夜算起的时数,范围为0-23

40、int tm_mday目前月份的日数,范围01-31

41、int tm_mon *** 目前月份,从一月算起,范围从0-11

42、int tm_year从1900年算起至今的年数

43、int tm_wday一星期的日数,从星期一算起,范围为0-6

44、int tm_yday从今年1月1日算起至今的天数,范围为0-365

45、int tm_isdst日光节约时间的旗标

46、此函数返回的时间日期未经时区转换,而是UTC时间。

47、char*wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

48、printf("%d%d%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);

49、printf("%s%d;%d;%d&# *** ;n", wday[p->tm_wday], p->tm_ho *** , p->tm_min, p->tm_sec);

50、localtime(取得当地目前时间和日期)

51、struct tm*localtime(const time_t* timep);

52、localtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示 *** ,然后将结果由结构tm返回。结构tm的定义请参考gmtime()。此函数返回的时间日期已经转换成当地时区。

53、返回结构tm *** 目前的当地时间。

54、char*wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

55、p=localtime(&timep);/*取得当地时间*/

56、printf("%d%d%d",(1900+p->tm_year),( l+p->tm_mon), p->tm_mday);

57、printf("%s%d:%d:%d&# *** ;n", wday[p->tm_wday],p->tm_ho *** , p->tm_min, p->tm_sec);

58、mktime(将时间结构数据转换成经过的秒数)

59、time,asctime,gmtime,localtime

60、time_t mktime(strcut tm* timeptr);

61、mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0秒算起至今的UTC时间所经过的秒数。

62、/*用time()取得时间(秒数),利用localtime()

63、转换成struct tm再利用mktine()将struct tm转换成原来的秒数*/

*** 、printf("time():%d&# *** ;n",timep);

65、printf("time()->localtime()->mktime():%d&# *** ;n",timep);

66、time()->localtime()->mktime():974943297

67、time,ctime,ftime,gettimeofday

68、int settimeofday( const struct timeval*tv,const struct timezone*tz);

69、settimeofday()会把目前时间设成由tv所指的结构信息,当地时区信息则设成tz所指的结构。详细的说明请参考gettimeofday()。注意,只有root权限才能使用此函数修改时间。

70、成功则返回0,失败返回-1,错误代码存于errno。

71、EPERM并非由root权限调用settimeofday(),权限不够。

72、EINVAL时区或某个数据是不正确的,无 *** 确设置时间。

关于c语言时间函数怎么用的内容到此结束,希望对大家有所帮助。

标签: 函数 言中 参数 语言 时间

抱歉,评论功能暂时关闭!