关于time.h

简介:

一直对时间函数有点兴趣,今天打开time.h看了一下.发现内容也不是太多.于是看了看.这是c库里的.C++的,改日再看.一边看一边写了总结,呵呵,效果不错.

在 time.h 文件中。首先我们可以看到
typedef long time_t; 这就可以明确地知道 time_t是一个long型
而为什么要这样做呢,当然是为了方便代码的阅读和理解了
typedef long clock_t;也是一样的含义

另外,还有一个用于存放时间的结构体
struct tm {
 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_t time (time_t *timer);
此它用来取得当前的时间相于对1900年所经历的秒数
当取得这个秒数以后,我们就可以用其它函数来推算现在的时间了。

struct tm * localtime(const time_t *timer);

见名知意。这个函数是用来取得当地时间的。参数即为我们用
time_t time (time_t *timer);求得的秒数。返回值是tm
结构,这样我们可以通过自己的一些方法取得里面的值。比如写一个
char * format(const struct tm ) 来格式化成可以输入的字符串格式
当然,有专门用于格式化的函数,下面一个便是。


char asctime (const struct tm *tblock); 
这个函数用来将取得的时间tm结构格式化
显示格式如下:Mon Dec 29 23:29:04 2008

char ctime (const time_t *time);
此函数也是用来取得本地时间。只是返回类型即为已经被asctime()函数格式化的字符串
显示格式即如上所说的Mon Dec 29 23:29:04 2008


struct tm * gmtime(const time_t *timer);
此函数用来获得美国官方日期。返回类型为tm。可以用asctime()格式后输出,
也可以自己格式化

double difftime(time_t time2, time_t time1);
此函数用来计算time2与time1的差值(time2-time1)。返回双精度浮点型的数

clock_t  clock(void);
这是一个比较有趣的函数。两次调用它后的差值即为程序所执行的时间。

注意clock()函数每1/1000秒记数一次,即为毫秒。
比如 start = clock();
     for(int i=0;i<100;i++){}
     end = clock();
那我们用cost_time = end - start;即可以得到for循环所花费的毫秒数

关于

int stime(time_t *tp);
设置时间

void tzset(void);
Unix下兼容时间函数,改日再议

 

 

 

 

 

作者:码瘾少年·麒麟子 
出处:http://www.cnblogs.com/geniusalex/ 
蛮牛专栏:麒麟子 
简介:09年入行,喜欢游戏和编程,对3D游戏和引擎尤其感兴趣。 
版权声明:本文版权归作者和博客园共有,欢迎转载。转载必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/geniusalex/archive/2008/12/30/1940532.html

目录
相关文章
|
5月前
Time
Time
27 0
|
12月前
|
机器学习/深度学习
Time Complexity -mycodeschool
Time Complexity - why should we care? How to analyze Time Complexity? Time Complexity analysis - asymptotic notations. Time Complexity analysis -some general rules.
88 0
获取当前时间的函数 CURRENT_TIME 和 LOCALTIME
获取当前时间的函数 CURRENT_TIME 和 LOCALTIME
141 0
|
Unix
TIME
1141 0
|
关系型数据库