C++ 获取代码运行时间的各种方法
- 格式:doc
- 大小:51.00 KB
- 文档页数:8
c 获取时间的函数(原创实用版)目录1.获取时间的函数概述2.获取时间的函数分类3.常用获取时间的函数介绍4.使用获取时间的函数的注意事项5.总结正文1.获取时间的函数概述在编程中,我们常常需要获取当前的时间,以便实现各种与时间相关的功能。
为了满足这一需求,各种编程语言都提供了相应的获取时间的函数。
这些函数可以帮助我们获取到当前的时间戳、日期、时间等信息,从而方便我们进行各种时间相关的操作。
2.获取时间的函数分类根据获取的时间信息不同,获取时间的函数可以分为以下几类:(1)获取时间戳的函数:时间戳是表示时间的一种方式,通常是从某个特定时间点开始到当前的秒数。
例如,Python 中的`time.time()`函数就可以获取当前时间戳。
(2)获取日期的函数:日期函数主要用于获取当前日期,例如,Python 中的`datetime.date.today()`函数可以获取当前日期。
(3)获取时间的函数:时间函数主要用于获取当前时间,例如,Python 中的`datetime.now()`函数可以获取当前时间。
(4)格式化时间的函数:格式化时间的函数可以让我们按照特定的格式输出时间,例如,Python 中的`strftime()`函数就可以实现这一功能。
3.常用获取时间的函数介绍以 Python 语言为例,以下是一些常用的获取时间的函数:(1)`time.time()`:用于获取当前时间戳(以秒为单位)。
(2)`datetime.date.today()`:用于获取当前日期。
(3)`datetime.now()`:用于获取当前时间。
(4)`strftime()`:用于格式化时间,例如,可以将时间格式化为“2022-08-01 14:30:00”等。
4.使用获取时间的函数的注意事项在使用获取时间的函数时,我们需要注意以下几点:(1)根据实际需求选择合适的函数:我们需要根据具体的需求选择合适的函数,例如,如果需要获取当前时间戳,就应该使用`time.time()`函数。
clock函数的使用方法clock函数是C语言中的一个库函数,用于计算程序运行时间。
它的使用方法相对简单,但需要掌握一定的编程基础知识。
在本文中,我们将详细介绍clock函数的使用方法。
1. 引入头文件在使用clock函数之前,必须先引入头文件。
在C语言中,我们可以通过以下语句引入头文件:#include <time.h>这条语句将time.h头文件引入到我们的程序中,使我们可以使用time相关的函数和变量。
2. 调用clock函数在程序中调用clock函数非常简单。
我们只需要使用以下语句即可:clock_t start_time = clock();这条语句将获取当前时间,并将其保存在一个名为start_time的变量中。
值得注意的是,clock函数的返回值类型为clock_t,所以start_time的类型也是clock_t。
3. 运行要测试的程序接下来,我们可以运行我们要测试的程序。
在程序运行之后,我们可以再次调用clock函数,获取程序结束时间:clock_t end_time = clock();同样,这条语句将获取当前时间,并将其保存在一个名为end_time的变量中。
4. 计算程序运行时间接下来我们需要通过简单的数学运算计算程序的运行时间。
我们只需要将end_time减去start_time,然后将差值除以CLOCKS_PER_SEC即可。
例如:double total_time = (double)(end_time - start_time) /CLOCKS_PER_SEC;这条语句将计算程序的总运行时间,并将结果保存在一个名为total_time的变量中。
注意,我们需要将end_time和start_time的差值强制转换为double类型,以避免出现整数除法的问题。
此外,CLOCKS_PER_SEC是一个常量,表示每秒钟的时钟嘀嗒数。
我们需要将差值除以该常量,才能得到程序的实际运行时间。
c clock函数C语言中的clock函数是一个非常重要的函数,它用于测量程序运行的时间。
clock函数返回的是程序运行开始到当前时刻的CPU时钟计时周期数。
通过使用clock函数,我们可以对程序的性能进行评估和优化。
在C语言中,clock函数位于头文件<time.h>中。
它的原型如下:```clock_t clock(void);```clock函数不接受任何参数,并返回一个clock_t类型的值,表示CPU时钟计时周期数。
clock_t是一个整数类型,通常是long型。
我们可以使用clock函数来测量一段代码的执行时间,以便进行性能分析和优化。
例如,我们可以使用clock函数来比较两段代码的执行时间,从而选择性能更好的代码。
下面是一个使用clock函数来测量代码执行时间的示例:```c#include <stdio.h>#include <time.h>int main() {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);return 0;}```在上面的示例中,我们首先声明了两个clock_t类型的变量start和end,以及一个double类型的变量cpu_time_used。
然后,在代码执行之前调用clock函数获取开始时间,代码执行之后再次调用clock 函数获取结束时间。
最后,我们通过计算两个时间的差值,并除以CLOCKS_PER_SEC来得到代码的执行时间。
最后,我们将执行时间打印出来。
需要注意的是,CLOCKS_PER_SEC是一个常量,表示每秒的时钟计时周期数。
Linux下⽤C获取当前时间Linux下⽤C获取当前时间,具体如下:代码(可以把clock_gettime换成time(NULL))void getNowTime(){timespec time;clock_gettime(CLOCK_REALTIME, &time); //获取相对于1970到现在的秒数tm nowTime;localtime_r(&_sec, &nowtime);char current[1024];sprintf(current, "%04d%02d%02d%02d:%02d:%02d", nowTime.tm_year + 1900, nowTime.tm_mon, nowTime.tm_mday,nowTime.tm_hour, nowTime.tm_min, nowTime.tm_sec);}分析:clock_gettime()函数"clock_gettime"是基于Linux C语⾔的时间函数,他可以⽤于计算精度和纳秒。
语法:#include<time.h>int clock_gettime(clockid_t clk_id,struct timespec *tp);参数:clk_id : 检索和设置的clk_id指定的时钟时间。
CLOCK_REALTIME:系统实时时间,随系统实时时间改变⽽改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被⽤户改成其他,则对应的时间相应改变 CLOCK_MONOTONIC:从系统启动这⼀刻起开始计时,不受系统时间被⽤户改变的影响 CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间 CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间struct timespec{time_t tv_sec; /* 秒*/long tv_nsec; /* 纳秒*/};localtime()localtime是把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间.语法说明:此函数获得的tm结构体的时间是⽇历时间。
c++程序运行时间的计时方法介绍
在C++中,可以使用多种方法来计时程序的运行时间。
下面是两种常见的方法:
1.使用<chrono>头文件中的high_resolution_clock:
这种方法使用了C++11中引入的<chrono>头文件,可以提供高精度的时间测量。
high_resolution_clock会以最高的可用分辨率来测量时间,因此可以更准确地测量程序的运行时间。
2.使用<ctime>头文件中的clock()函数:
这种方法使用了<ctime>头文件中的clock()函数,它返回从程序启动到当前时刻的时钟计时数。
通过将开始时间和结束时间的计时数相减,再除以每秒的时钟计时数(CLOCKS_PER_SEC),可以计算出程序的运行时间。
这种方法虽然不如<chrono>头文件中的方法精确,但在大多数情况下仍然可以提供足够准确的结果。
C++获取当前系统时间的⽅法总结本⽂实例讲述了C++获取当前系统时间的⽅法。
分享给⼤家供⼤家参考。
具体如下:⽅案— 优点:仅使⽤C标准库;缺点:只能精确到秒级#include <time.h>#include <stdio.h>int main( void ){time_t t = time(0);char tmp[64];strftime(tmp,sizeof(tmp),"%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t));puts( tmp );return 0;}⽅案⼆优点:能精确到毫秒级;缺点:使⽤了windows API#include <windows.h>#include <stdio.h>int main( void ){SYSTEMTIME sys;GetLocalTime(&sys);printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d/n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek); return 0;}⽅案三,优点:利⽤系统函数,还能修改系统时间#include<stdlib.h>#include<iostream>using namespace std;void main(){system("time");}⽅案四,将当前时间折算为秒级,再通过相应的时间换算即可#include<iostream>#include<ctime>using namespace std;int main(){time_t now_time;now_time = time(NULL);cout<<now_time;return 0;}希望本⽂所述对⼤家的C++程序设计有所帮助。
C#如何测试代码运行时间
第一种方式:
System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); // 开始监视代码运行时间
// 需要测试的代码 ....
stopwatch.Stop(); // 停止监视
TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测
量得出的总时间
double hours = timespan.TotalHours; // 总小时
double minutes = timespan.TotalMinutes; // 总分钟
double seconds = timespan.TotalSeconds; // 总秒数
double milliseconds = timespan.TotalMilliseconds; // 总毫秒
数
第二种方式:
System.Diagnostics.Stopwatch watch = new
System.Diagnostics.Stopwatch();
watch.Start(); //开始监视代码运行时间
//需要测试的代码
watch.Stop(); //停止监视
TimeSpan timespan = watch.Elapsed; //获取当前实例测量得
出的总时间
System.Diagnostics.Debug.WriteLine("打开窗口代码执行时间:
{0}(毫秒)", timespan.TotalMilliseconds); //总毫秒数
c语⾔获取当前⽇期和时间1、#include <stdio.h>#include <time.h> // time_t数据类型,⽇历时间头⽂件int main(void){time_t current = time(NULL); // 利⽤time函数获取⽇历时间(返回1970之后的秒数,整型)struct tm *timer = localtime(¤t); // 利⽤localtime函数将⽇历时间转换为分解时间(结构体类型),赋给struct tm型指针timerchar *wday_name[] = {"7","1","2","3","4","5","6"}; //利⽤指针创建字符串数组(字符串的数组),等价于 char wday_name[][128];因为结构体timer的结构体 //成员tm_wday的顺序为(0,1,2,3,4,5,6),将其转换为字符串,然后利⽤索引获取对应的字符串printf("result: %d - %d - %d - %s - %d - %d - %d.\n",timer -> tm_year + 1900, timer -> tm_mon + 1, timer -> tm_mday, // 利⽤箭头运算符获取结构体指针指向的成员的值。
wday_name[timer -> tm_wday],timer -> tm_hour, timer -> tm_min, timer -> tm_sec);return0;}。
C语⾔程序执⾏时间计时⽅法汇总C语⾔中程序计时⽅法总结主流⽅法共分为如下三种1. clock()函数需要引⽤头⽂件 “time.h”注:clock函数返回从开始这个程序到调⽤的 clock() 函数之间的CPU时钟计时单元(clock tick)数。
返回值类型是 clock_t。
其中 CLOCKS_PER_SEC 是⼀个常数,表⽰⼀秒钟有多少个时钟数。
代码:1 #include<time.h>23 int main(){4 clock_t start, end;5 start = clock();67 /*...8 需要计时的代码9 ...*/1011 end = clock();12 printf("time=%f\n", (double)(end - start) / CLOCKS_PER_SEC);13 return 0;14 }使⽤场景:建议在Windows环境下使⽤2. time(), difftime() 函数返回从1970年1⽉1⽇00:00:00到现在经过的秒数注:建议使⽤ difftime() 来计算程序执⾏所花时间(更精确,单位:s)代码:1 #include<time.h>23 int main(){4 time_t start,end;5 start = time(NULL);67 /*...8 需要计时的代码9 ...*/1011 end = time(NULL);12 printf("time = %ds\n", difftime(end, start));13 return 0;14 }3. gettimeoftoday() 函数函数原型:int gettimeofday(struct timeval *tv, struct timezone *tz)1.该函数是 Linux 系统专属函数,可以精确到微秒 (us);2.其中参数tv是保存获取时间的结果类型,参数tz⽤于保存时区结果 (若不使⽤可以传⼊NULL)。
c语言时间函数
C语言时间函数是由C语言定义的一组函数,用于操作时间和日期。
它们是C语言标准库中的一部分,用于获取当前系统时间,日历时间,表示时间,检查日期是否有效等。
C语言标准库中的时间函数可以分为三大类:
1、获取时间函数:常用的获取时间函数有time()函数,它可以获取当前的系统时间;clock()函数,它可以获取从程序开始运行到当前的CPU时间;gettimeofday()函数,它可以获取当前的系统时间,包括时间戳和微秒数。
2、表示时间函数:常用的表示时间函数有ctime()函数,它可以将时间戳转换成字符串;strftime()函数,它可以将日历时间格式化成指定格式的字符串。
3、检查时间函数:常用的检查时间函数有difftime()函数,它可以计算两个时间戳之间的时间差;mktime()函数,它可以检查日历时间是否有效。
C语言时间函数的使用不仅可以获取当前系统时间,还可以计算和检查日历时间。
它们是C语言程序开发过程中经常使用到的函数,可以在很大程度上提高程序的运行效率。
c 获取时间的函数【实用版】目录1.获取时间的函数概述2.常用获取时间的函数3.获取时间的函数应用实例4.注意事项正文【1.获取时间的函数概述】获取时间的函数是指用于获取当前时间的函数,通常在编程语言中使用。
这类函数可以帮助开发者获取当前的时间戳、日期、时间等信息,以便在程序中实现各种与时间相关的功能。
【2.常用获取时间的函数】在各种编程语言中,都有相应的获取时间的函数。
这里以 Python 语言为例,常用的获取时间的函数有:1.time.time():返回当前时间的时间戳(以秒为单位)2.time.localtime():返回当前本地时间的时间元组3.time.strftime():将时间元组格式化成字符串4.datetime.datetime.now():返回当前时间的 datetime 对象5.datetime.datetime.strptime():将字符串解析为 datetime 对象【3.获取时间的函数应用实例】假设我们要编写一个简单的程序,用于获取当前时间并打印出来,可以使用以下代码:```pythonimport timefrom datetime import datetimecurrent_time = datetime.now()print("当前时间:", current_time)```在这个例子中,我们首先导入了 time 和 datetime 模块,然后使用time.time() 函数获取当前时间的时间戳,接着使用 datetime.now() 函数获取当前时间的 datetime 对象,最后使用 print() 函数打印出当前时间。
【4.注意事项】在使用获取时间的函数时,需要注意以下几点:1.根据编程语言选择合适的函数,如 Python 中使用 time 和datetime 模块中的函数,而 Java 中则使用 java.time 包中的函数。
介绍我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。
还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。
编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数。
现在我就介绍windows下的几种常用时间函数。
1:Sleep函数使用:sleep(1000),在Windows和Linux下1000代表的含义并不相同,Windows下的表示1000毫秒,也就是1秒钟;Linux下表示1000秒,Linux下使用毫秒级别的函数可以使用usleep。
原理:sleep函数是使调用sleep函数的线程休眠,线程主动放弃时间片。
当经过指定的时间间隔后,再启动线程,继续执行代码。
Sleep函数并不能起到定时的作用,主要作用是延时。
在一些多线程中可能会看到sleep(0);其主要目的是让出时间片。
精度:sleep函数的精度非常低,当系统越忙它精度也就越低,有时候我们休眠1秒,可能3秒后才能继续执行。
它的精度取决于线程自身优先级、其他线程的优先级,以及线程的数量等因素。
2:MFC下的timer事件使用:1.调用函数SetTimer()设置定时间隔,如SetTimer(0,100,NULL)即为设置100毫秒的时间间隔;2.在应用程序中增加定时响应函数OnTimer(),并在该函数中添加响应的处理语句,用来完成时间到时的操作。
原理:同sleep函数一样。
不同的是timer是一个定时器,可以指定回调函数,默认为OnTimer()函数。
精度:timer事件的精度范围在毫米级别,系统越忙其精度也就越差。
3:C语言下的Time使用:time_t t;time(&t);Time函数是获取当前时间。
C++获取本地时间常见⽅法汇总1.跨平台⽅法1.1⽅法⼀:⼿动暴⼒法#include <iostream>using namespace std;#include <time.h>time_t t = time(NULL);struct tm* stime=localtime(&t);char tmp[32]={NULL};sprintf(tmp, "%04d-%02d-%02d %02d:%02d:%02d",1900+stime->tm_year,1+stime->tm_mon,stime->tm_mday, stime->tm_hour,stime->tm_min,stime->tm_sec); cout<<tmp<<endl;输出结果:2015-04-02 23:12:561.2⽅法⼆:投机取巧法#include <iostream>using namespace std;#include <time.h>time_t t = time(0);char tmp[32]={NULL};strftime(tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S",localtime(&t));cout<<tmp<<endl;输出结果:2015-04-02 23:12:561.3⽅法三:简获⽇历时间法#include <iostream>using namespace std;#include <time.h>#include <string>time_t tm;time(&tm);char tmp[128]={NULL};strcpy(tmp,ctime(&tm));//或者//struct tm* stime=localtime(&tm);//strcpy(tmp,asctime(stime));cout<<tmp<<endl;输出结果:Fri Aug 14 23:19:42 20152.Windows平台获取时间#include <iostream>using namespace std;#include <time.h>#include <windows.h>SYSTEMTIME sys;GetLocalTime(&sys);char tmp[64]={NULL};sprintf(tmp,"%4d-%02d-%02d %02d:%02d:%02d ms:%03d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds);cout<<tmp<<endl;输出结果:2015-08-14 23:41:56 ms:3543.Unix平台获取时间#include <sys/time.h>#include <unistd.h>struct timeval now_time;gettimeofday(&now_time, NULL);time_t tt = now__sec;tm *temp = localtime(&tt);char time_str[32]={NULL};sprintf(time_str,"%04d-%02d-%02d%02d:%02d:%02d",temp->tm_year+ 1900,temp->tm_mon+1,temp->tm_mday,temp->tm_hour,temp->tm_min, temp->tm_sec); cout<<tmp<<endl;输出时间:2015-08-14 23:41:564.需知知识点(1)UTC (Coordinated Universal Time):协调世界时,⼜称世界标准时间。
在C语言中,我们可以使用宏定义来统计代码的执行时间。
下面是一个简单的例子:
```c
#include <stdio.h>
#include <time.h>
#define TIMER_START() clock_t start = clock()
#define TIMER_END() printf("Elapsed time: %f seconds\n", (double)(clock() - start) / CLOCKS_PER_SEC)
int main() {
// 开始计时
TIMER_START();
// 你的代码在这里
for(int i = 0; i < 1000000; i++) {
// do something
}
// 结束计时并打印耗时
TIMER_END();
return 0;
}
```
这个例子中,`TIMER_START()`宏用于开始计时,`TIMER_END()`宏用于结束计时并打印耗时。
`clock()`函数用于获取当前时间(以时钟周期为单位),`CLOCKS_PER_SEC`是一个常量,表示每秒的时钟周期数。
在`TIMER_START()`宏中,我们存储了开始时间。
在`TIMER_END()`宏中,我们计算了经过的时间(以秒为单位),并打印出来。
注意,这个方法只能给出大致的执行时间,因为`clock()`函数可能会因为操作系统或其他因素而被干扰。
对于更精确的计时,你可能需要使用系统提供的更高精度的计时器,例如`<chrono>`头文件中的类。
C语言中读取时间日期的基本方法如何让c语言自动读取电脑上的日期及时间?下面就有小编分享C 语言中读取时间日期的基本方法,欢迎大家学习!C语言time()函数:获取当前时间(以秒数表示)头文件:#include定义函数:time_ttime(time_t*t);函数说明:此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
如果t并非空指针的话,此函数也会将返回值存到t指针所指的内存。
返回值:成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。
范例#includemain(){intseconds=time((time_t*)NULL);printf("%dn ",seconds);}执行结果:9.73E+08C语言gmtime()函数:获取当前时间和日期头文件:#include定义函数:structtm*gmtime(consttime_t*timep);函数说明:gmtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
结构tm的定义为structtm{inttm_sec;//代表目前秒数,正常范围为0-59,但允许至61秒inttm_min;//代表目前分数,范围0-59inttm_hour;//从午夜算起的时数,范围为0-23inttm_mday;//目前月份的日数,范围01-31inttm_mon;//代表目前月份,从一月算起,范围从0-11inttm_year;//从1900年算起至今的年数inttm_wday;//一星期的日数,从星期一算起,范围为0-6inttm_yday;//从今年1月1日算起至今的天数,范围为0-365inttm_isdst;//日光节约时间的旗标};此函数返回的时间日期未经时区转换,而是UTC时间。
返回值:返回结构tm代表目前UTC时间。
C++获取代码运行时间如何获取代码运行时间在调试中,经常需要计算某一段代码的执行时间,下面给出两种常用的方式:第一种:使用GetTickCount函数#include<iostream>#include<windows.h>int main(){DWORD start_time=GetTickCount();{//此处为被测试代码}DWORD end_time=GetTickCount();cout<<"The run time is:"<<(end_time-start_time)<<"ms!"<<endl;//输出运行时间return 0;} GetTickCount函数返回从系统运行到现在所经历的时间(类型为DWORD),单位为ms,因为DWORD表示范围的限制,所以使用此种方法存在限制,即系统的运行时间的ms表示不能超出DWORD的表示范围。
第二种:使用cl ock()函数#include<iostream>#include<time.h>int main(){clock_t start_time=clock();{//被测试代码}clock_t end_time=clock();cout<< "Running time is: "<<static_cast<double>(end_time-start_time)/CLOCKS_PER_SEC*1000<<"ms"<<endl;//输出运行时间return 0;} clock_t,clock()定义于time.h中,clock()返回从程序运行时刻开始的时钟周期数,类型为long.CLOCKS_PER_SEC定义了每秒钟包含多少了时钟单元数,因为计算ms,所以*1000。
由上面分析可知,用clock()函数计算运行时间,表示范围一定大于GetTickCount()函数,所以,建议使用clock()函数。
=============================================================================== 1.使用CTime类CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();str=tm.Format("现在时间是%Y年%m月%d日%X");MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime)SYSTEMTIME st;CString strDate,strTime;GetLocalTime(&st);strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond);3.使用GetTickCount//获取程序运行时间long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)Sleep(500);long t2=GetTickCount();();//程序段结束后取得系统运行时间(ms)str.Format("time:%dms",t2-t1);//前后之差即程序运行时间AfxMessageBox(str);//获取系统运行时间long t=GetTickCount();CString str,str1;str1.Format("系统已运行%d时",t/3600000);str=str1;t%=3600000;str1.Format("%d分",t/60000);str+=str1;t%=60000;str1.Format("%d秒",t/1000);str+=str1;AfxMessageBox(str);=============================================================================== 如何在VC6.0中得到一个程序的运行时间,也就是这个程序耗费的时钟周期数// C和C++的时间编程#include<iostream>#include<ctime>using namespace std;int main(){time_t begin,end;begin=clock();//这里加上你的代码end=clock();cout<<"runtime: "<<double(end-begin)/CLOCKS_PER_SEC<<endl;}unix时间相关,也是标准库的这些在<time.h>1.timegm函数只是将struct tm结构转成time_t结构,不使用时区信息;time_t timegm(struct tm *tm);2.mktime使用时区信息time_t mktime(struct tm *tm);timelocal 函数是GNU扩展的与posix函数mktime相当time_t timelocal (struct tm *tm);3.gmtime函数只是将time_t结构转成struct tm结构,不使用时区信息;struct tm * gmtime(const time_t *clock);4.localtime使用时区信息struct tm * localtime(const time_t *clock);1.time获取时间,stime设置时间time_t t;t = time(&t);2.stime其参数应该是GMT时间,根据本地时区设置为本地时间;int stime(time_t *tp)3.UTC=true 表示采用夏时制;4.文件的修改时间等信息全部采用GMT时间存放,不同的系统在得到修改时间后通过localtime转换成本地时间;5.设置时区推荐使用setup来设置;6.设置时区也可以先更变/etc/sysconfig/clock中的设置再将ln -fs /usr/share/zoneinfo/xxxx/xxx /etc/localtime 才能重效time_t只能表示68年的范围,即mktime只能返回1970-2038这一段范围的time_t看看你的系统是否有time_t64,它能表示更大的时间范围Window里面的一些不一样的CTime MFC类,好像就是把time.h封了个类,没扩展CTime t = GetCurrentTime();SYSTEMTIME 结构包含毫秒信息typedef struct _SYSTEMTIME {WORD wYear;WORD wMonth;WORD wDayOfWeek;WORD wDay;WORD wHour;WORD wMinute;WORD wSecond;WORD wMilliseconds;} SYSTEMTIME, *PSYSTEMTIME;SYSTEMTIME t1;GetSystemTime(&t1)CTime curTime(t1);WORD ms = t1.wMilliseconds;SYSTEMTIME sysTm;::GetLocalTime(&sysTm);在time.h中的_strtime() //只能在windows中用char t[11];_strtime(t);puts(t);------------------------------------------------------------------------------_timeb定义在SYS\TIMEB.H,有四个fieldsdstflagmillitmtimetimezonevoid _ftime( struct _timeb *timeptr );struct _timeb timebuffer;_ftime( &timebuffer );取当前时间:文档讲可以到ms,有人测试,好象只能到16ms!-------------------------------------------------------------------------如何设定当前系统时间---windowsSYSTEMTIME m_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wMonth=1;m_myLocalTime.wDay=1;m_myLocalTime.wHour=0;m_myLocalTime.wMinute=0;m_myLocalTime.wSecond=0;m_myLocalTime.wMilliseconds=0;lpSystemTime=&m_myLocalTime;if( SetLocalTime(lpSystemTime) ) //此处换成SetSystemTime( )也不行MessageBox("OK !");elseMessageBox("Error !");SYSTEMTIME m_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wMonth=1;m_myLocalTime.wDay=1;lpSystemTime=&m_myLocalTime;if( SetDate(lpSystemTime) ) //此处换成SetSystemTime( )也不行MessageBox("OK !");elseMessageBox("Error !");-----------------------------------------------------------------------------用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”,标准c函数。
clock_t clock ( void );#include <time.h>clock_t t = clock();long sec = t / CLOCKS_PER_SEC;他是记录时钟周期的,实现看来不会很精确,需要试验验证;---------------------------------------------------------------------------据说tc2.0的time结构含有毫秒信息#include <stdio.h>#include <dos.h>int main(void){struct time t;gettime(&t);printf("The current time is: %2d:%02d:%02d.%02d\n",t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);return 0;}time 是一个结构体,,其中成员函数ti_hund 是豪秒。