格林函数c语言 格林函数法的基本思路( 三 )


double difftime(time_t time1, time_t time0);
time_t mktime(struct tm * timeptr);
time_t time(time_t * timer);
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);
此外,time.h还提供了两种不同的函数将日历时间(一个用time_t表示的整数)转换为我们平时看到的把年月日时分秒分开显示的时间格式tm:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
通过查阅MSDN,我们可以知道Microsoft C/C++ 7.0中时间点的值(time_t对象的值)是从1899年12月31日0时0分0秒到该时间点所经过的秒数,而其它各种版本的Microsoft C/C++和所有不同版本的Visual C++都是计算的从1970年1月1日0时0分0秒到该时间点所经过的秒数 。
3.与日期和时间相关的函数及应用
在本节 , 我将向大家展示怎样利用time.h中声明的函数对时间进行操作 。这些操作包括取当前时间、计算时间间隔、以不同的形式显示时间等内容 。
4. 获得日历时间
我们可以通过time()函数来获得日历时间(Calendar Time),其原型为:
time_t time(time_t * timer);
如果你已经声明了参数timer , 你可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数 。如果参数为空(NUL) , 函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
运行的结果与当时的时间有关,我当时运行的'结果是:
/* Date : 10/24/2007 */
/* Author: Eman Lee */
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void)
{
time_t lt;
lt =time(NULL);
printf("The Calendar Time now is %d ",lt);
return 0;
}
The Calendar Time now is 1122707619
其中1122707619就是我运行程序时的日历时间 。即从1970-01-01 08:00:00到此时的秒数 。
5. 获得日期和时间
这里说的日期和时间就是我们平时所说的年、月、日、时、分、秒等信息 。从第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秒 。下面是个例子:
//本地时间,世界标准时间
/* Date : 10/24/2007 */
/* Author: Eman Lee */
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void)
{
【格林函数c语言 格林函数法的基本思路】 struct tm *local;
time_t t;
t=time(NULL);
local=localtime(t);
printf("Local hour is: %d:%d:%d ",local-tm_hour,local-tm_min,local-tm_sec);
local=gmtime(t);
printf("UTC hour is: %d:%d:%d ",local-tm_hour,local-tm_min,local-tm_sec);
return 0;
}
运行结果是:
Local hour is: 23:17:47
UTC hour is: 15:17:47
6. 固定的时间格式
我们可以通过asctime()函数和ctime()函数将时间以固定的格式显示出来 , 两者的返回值都是char*型的字符串 。返回的时间格式为:

推荐阅读