C语言计时函数
- 格式:docx
- 大小:17.14 KB
- 文档页数:3
C语⾔时间函数1、time函数头⽂件:time.h函数定义:time_t time (time_t *t)说明:返回从1970年1⽉1⽇的UTC时间从0时0分0妙算起到现在所经过的秒数。
#include<stdio.h>#include<time.h>int main(){time_t timep;long seconds = time(&timep);printf("%ld\n",seconds);printf("%ld\n",timep);return 0;}输出:13020797441302079744附:time_t ⼀路追踪发现就是从long类型经过不断的typedef ,#define定义过来的。
2、ctime函数定义:char *ctime(const time_t *timep);说明:将参数所指的time_t结构中的信息转换成真实世界的时间⽇期表⽰⽅法,然后将结果以字符串形式返回。
这个是本地时间。
#include <stdio.h>#include<time.h>int main(void) {time_t timep;time(&timep);printf("%s\n",ctime(&timep));return 0;}输出:Wed Apr 6 16:53:35 20113、gettime函数定义:struct tm *gmtime(const time_t *timep);说明:将参数timep所指的time_t结构中的信息转换成真实世界所使⽤的时间⽇期表⽰⽅法,然后将结果由结构tm返回。
此函数返回的时间⽇期未经时区转换,⽽是UTC时间。
struct tm结构的定:struct tm{int tm_sec;/*秒数*/int tm_min; /*分钟*/int tm_hour;/*⼩时*/int tm_mday;/*⽇期*/int tm_mon; /*⽉份*/int tm_year; /*从1990年算起⾄今的年数*/int tm_wday; /*星期*/int tm_yday; /*从今年1⽉1⽇算起⾄今的天数*/int tm_isdst; /*⽇光节约时间的旗标*/};#include <stdio.h>#include<time.h>int main(void) {char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};time_t timep;struct tm *p;time(&timep);p = gmtime(&timep);printf("%d/%d/%d ",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);printf("%s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);return 0;}输出:2011/4/6 Wed 8:59:04、 asctime函数定义:char *asctime(const struct tm *timeptr);说明:将参数timeptr所指的struct tm结构中的信息转换成真实时间所使⽤的时间⽇期表⽰⽅法,结果以字符串形态返回。
C语言中的延时与计时技巧
一、延时技巧
1.延时的定义:控制程序中当前语句的后一语句,延缓一段时间再执行。
2.C常用的两个延时函数:
(1) delay函数。
书写格式:delay(数值)。
其中,括号中的整型数值取值范围0 ~ 32767之间。
注意:这个数值与计算机主机的频率有关,因此在不同的计算机上,同样的延时数值,会得到不同的延时效果。
(2) sleep (数值)。
(睡眠函数)
书写格式:sleep (数值)。
其中数值是以秒为单位,用在动态显示中最少一秒变化一次,那会有明显的停顿感觉。
二、计时技巧
1.计时的定义:计算程序中某段程序的运行时间。
2.计时程序使用条件:
(1)使用头部文件:
#include <time.h>
(2)使用当前时间的时钟函数:
clock()
(3)使用时间一秒常数:
CLK_TCK
例如:
A.在“蛇吃蛋”的程序中,要引入计时程序,则:在进入while(1)循环前,先要取得计时开始时的那一时刻,使用变量t0表示。
即:
t0 = clock();
B.在while(1)循环的最后处,再取当前时刻,使用变量t1表示。
即:
t1=clock();
C.t1 和t0 之差即为所经历的时间,即;
t = (t1-t0 );
D.转换成秒:
sec=t/CLK_TCK;。
C语言中time函数在学习I/O文件操作时遇到了关于时间函数的问题,在网上找了一部分资料和自己整理,希望能对有所需要的人有所帮助。
C/C++中的日期和时间头文件time.hasctime(将时间和日期以字符串格式表示)定义函数char * asctime(const struct tm * timeptr);函数说明asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
此函数已经由时区转换成当地时间,字符串格式为:"Wed Jun 30 21:49:08 1993\n"返回值若再调用相关的时间日期函数,此字符串可能会被破坏。
此函数与ctime不同处在于传入的参数是不同的结构。
附加说明返回一字符串表示目前当地的时间日期。
ctime(将时间和日期以字符串格式表示)定义函数char *ctime(const time_t *timep);函数说明ctime ()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
此函数已经由时区转换成当地时间,字符串格式为"Wed Jun 30 21 :49 :08 1993\n"。
若再调用相关的时间日期函数,此字符串可能会被破坏。
返回值返回一字符串表示目前当地的时间日期。
范例#i ncludemain(){time_t timep;time (&timep);printf("%s",ctime(&timep));}执行Sat Oct 28 10 : 12 : 05 2000gettimeofday(取得目前的时间)定义函数int gettimeofday ( struct timeval * tv , struct timezone * tz )函数说明gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中。
C语言中时间的函数C语言中关于时间的函数C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
下面是店铺分享的C语言中关于时间的函数,一起来看一下吧。
一.概念在C/C++中,通过学习许多C/C++库,你可以有很多操作、使用时间的方法。
但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:1. 协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。
比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。
美国是UTC-5。
2. 日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。
这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。
3. 时间点。
时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。
4. 时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。
一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。
我们可以使用ANSI标准库中的time.h头文件。
这个头文件中定义的时间和日期所使用的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。
下面,我将说明在C/C++中怎样使用日期的时间功能。
二. 介绍1. 计时C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。
在MSDN中,查得对clock函数定义如下:clock_t clock( void );这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。
C语言时间函数积累(一)用法:time_t time(time_t *t)功能:此函数返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
如果t并非空指针,此函数也会将返回值存到t指针所指的内存。
返回值:成功,返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。
程序例:#include<stdio.h>#include<time.h>void main(){int seconds= time((time_t*)NULL);printf("%d\n",seconds);}localtime用法: struct tm *localtime(const time_t *clock);功能: localtime()将参数clock所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
结构tm的定义请参考gmtime()。
此函数返回的时间日期已经转换成当地时区。
程序例:#include<time.h>main(){char*wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};time_t timep;struct tm *p;time(&timep);p=localtime(&timep); /*取得当地时间*/printf ("%d/%d/%d ", (1900+p->tm_year),(1+p->tm_mon), p->tm_mday);printf("%s %d:%d:%d\n", wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);}在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct 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代表一月)- 取值区间为[0,11] */int tm_year; /* 年份,其值等于实际年份减去1900 */int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推*/ int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推*/int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。
c语言计算程序运行时间的函数以C语言计算程序运行时间的函数为题,我们来探讨一下如何在C 语言中编写一个函数来计算程序的运行时间。
在计算机科学中,我们经常需要评估程序的性能,其中一个重要指标就是程序的运行时间。
在C语言中,我们可以使用clock()函数来计算程序的运行时间。
clock()函数返回的是程序运行的时钟周期数,我们可以通过一些操作将其转换为以秒为单位的时间。
我们需要包含<time.h>头文件,这个头文件中包含了clock()函数的定义。
然后,我们可以在程序中定义一个函数来计算程序的运行时间,下面是一个具体的例子:```c#include <stdio.h>#include <time.h>void calculate_time(){clock_t start, end;double cpu_time_used;start = clock(); // 记录开始时间// 在这里插入你的代码,待计算运行时间的代码end = clock(); // 记录结束时间cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; // 计算运行时间,单位为秒printf("程序运行时间为 %f 秒\n", cpu_time_used);}int main(){calculate_time();return 0;}```在上面的例子中,我们定义了一个名为calculate_time()的函数来计算程序的运行时间。
首先,我们声明了两个clock_t类型的变量start和end,分别用来记录程序的开始时间和结束时间。
然后,我们使用clock()函数来获取当前的时钟周期数,并将其赋值给start 变量。
接着,我们在待计算运行时间的代码前后分别调用了clock()函数,并将返回值赋值给end变量。
最后,我们使用公式((double) (end - start)) / CLOCKS_PER_SEC来计算程序的运行时间,并将结果打印输出。
c语言时间函数时间是我们生活中一个非常重要的概念,我们总是需要知道时间的流逝,以便安排我们的日常活动和计划。
在计算机编程领域,时间同样也非常重要。
C语言提供了一些函数来帮助我们获取和操作时间,这些函数被称为时间函数。
1. time()函数time()函数是C语言中最常用的时间函数之一。
它返回自1970年1月1日以来经过的秒数。
通常情况下,我们使用time()函数来获取当前的时间戳。
2. localtime()函数localtime()函数将一个时间戳转换为本地时间。
它接受time()函数返回的时间戳作为参数,并返回一个指向tm结构体的指针,该结构体包含了年、月、日、时、分、秒等信息。
3. strftime()函数strftime()函数可以将时间格式化为字符串。
它接受一个格式化字符串作为参数,并根据这个格式化字符串将时间转换为指定的格式。
例如,我们可以使用"%Y-%m-%d %H:%M:%S"来将时间格式化为"年-月-日时:分:秒"的形式。
4. mktime()函数mktime()函数与localtime()函数相反,它将一个tm结构体转换为时间戳。
我们可以使用mktime()函数将一个包含年、月、日、时、分、秒等信息的tm结构体转换为一个表示时间的秒数。
5. difftime()函数difftime()函数可以计算两个时间之间的差值。
它接受两个时间戳作为参数,并返回它们之间的差值,单位为秒。
6. clock()函数clock()函数用于测量程序运行的时间。
它返回程序运行的时钟周期数,单位为毫秒。
通过测量程序开始和结束之间的时钟周期数差值,我们可以计算出程序的运行时间。
7. sleep()函数sleep()函数用于让程序暂停执行一段时间。
它接受一个整数作为参数,表示暂停的秒数。
通过调用sleep()函数,我们可以让程序在执行到某个地方时暂停一段时间,然后再继续执行。
C语言中的时间日期函数在C语言中,时间和日期是非常重要的概念,我们经常需要处理时间和日期相关的操作。
为了方便对时间和日期进行处理,C语言提供了一系列的时间日期函数。
本文将介绍C语言中常用的时间日期函数,并提供一些示例代码来说明它们的使用方法。
1. time函数time函数用于获取当前的系统时间,返回从1970年1月1日零时开始经过的秒数。
其函数原型如下:```ctime_t time(time_t *timer);```参数`timer`为一个time_t类型的指针,可以用于获取系统时间。
示例如下:```c#include <stdio.h>#include <time.h>int main() {time_t currentTime;time(¤tTime);printf("当前时间:%ld\n", currentTime);return 0;}```上述代码将输出当前系统时间对应的秒数。
2. localtime函数localtime函数用于将一个时间戳转换为本地时间,返回一个tm结构体,其中包含了详细的年、月、日、时、分、秒等信息。
其函数原型如下:```cstruct tm *localtime(const time_t *timer);```示例代码:```c#include <stdio.h>#include <time.h>int main() {time_t currentTime;struct tm *localTime;time(¤tTime);localTime = localtime(¤tTime);printf("当前时间:%d-%d-%d %d:%d:%d\n", localTime->tm_year + 1900, localTime->tm_mon + 1, localTime->tm_mday,localTime->tm_hour, localTime->tm_min, localTime->tm_sec);return 0;}```上述代码将输出当前系统时间对应的年、月、日、时、分、秒。
C语言计时函数
(2012-05-16 09:30:18)
转载▼
分类:c*cpp
标签:
杂谈
1. <time.h>中函数clock(),返回类型clock_t,精确度,毫秒级别
实例:
#include <stdio.h>
#include <time.h>
#include <math.h>
void test()
{
int i = 0;
int j = 0;
double a = 0;
while (i++ < 1000000)
while (j++ < 1000000)
{
a = sqrt(2.0);
}
}
int main(void)
{
clock_t start, finish;
double duration = 0.0;
start = clock();
test();
finish = clock();
duration = (double)(finish - start);输出单位ms
duration = (double)(finish - start) / CLOCKS_PER_SEC; //输出单位为妙,精确到毫秒级
//#define CLOCKS_PER_SEC 1000
printf("%f seconds\n", duration);
return 0;
}
2、<time.h>中函数time(&t),精确度,秒级别
功能:取以秒为单位的,从1970年1月1日格林威治时间00:00:00算起的当前时间,并把它存在长整形变量t中,函数返回如前所述的时间秒值。
测试程序如下:
#include "stdio.h "
#include "time.h "
#include "stdlib.h "
main()
{
long start,end;
time(&start);
delay(50000);
time(&end);
printf( "end-start=%ld\n ",end-start);
getch();
}
3. 最精确的计时:QueryPerformanceCounter来查询定时器的计数值,如果硬件里有定时器,它就会启动这个定时器,并且不断获取定时器的值,这样的定时器精度,就跟硬件时钟的晶振一样精确的。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void test()
{
int i = 0;
int j = 0;
double a = 0;
while (i++ < 1000000)
while (j++ < 1000000)
{
a = sqrt(2.0);
}
}
int main(void)
{
LARGE_INTEGER start;
LARGE_INTEGER end;
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
test();
QueryPerformanceCounter(&end);
printf("user time : %.10f seconds\n", (double)(end.QuadPart - start.QuadPart) / (double)freq.QuadPart);
return 0;
}。