2010-07-21 Linux C 时间编程

1、格林威治时间 英语:Greenwich MeanTime,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线  GMT 是“Greenwich Mean Time”的缩写,中文叫“格林威治标准时间”,是英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国的当地时间比中国的北京时间晚8小时。

2、UTC(Coordinated Universal Time  --协调世界时)  协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。 

3、日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。日历时间(Calendar Time)是通过time_t数据类型来表示的,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数。time_t实际上是长整型。

 

4、获取日历时间(从1970年1月1日0点到现在所经历的秒数)。

    time_t  time(time_t * tloc)    typedef long time_t

5、将日历时间转化为格林威治时间,并保存至 tm 结构中 。

    struct tm * gmtime(const time_t * timep)

6、将日历时间转化为本地时间,并保存至 tm 结构中 。

    struct tm * locatime(const time_t * timep)

7、tm 结构体

                 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;  //
                    };

 #include <time.h>
#include <stdio.h>

int main(void){
    struct tm *local;
    time_t t;

    /* 获取日历时间 */
    t=time(NULL);
   
    /* 将日历时间转化为本地时间 */
    local=localtime(&t);
    /*打印当前的小时值*/
    printf("Local hour is: %d/n",local->tm_hour);
   
    /* 将日历时间转化为格林威治时间 */
    local=gmtime(&t);
    printf("UTC hour is: %d/n",local->tm_hour);
    return 0;
}

 8、将tm 格式的时间转化为字符串

 char  *  asctime(const struct tm * tm)

 tm 是用 localtime() 转化来,则输出本地时间字符串

 tm 是用 gmtime() 转化来,则输出格林威治时间字符串

 

9、 将日历时间转化为本地时间的字符串

      char  * ctime(const time_t * timep)

10、获取从今日凌晨到现在的时间差  int gettimeofday(struct timeval * tv ,struct timezone * tz )

       // 常用于计算事件耗时

       //struct timeval { int tv_sec;//秒数   int tv_usec;//  微妙}

#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


void function()
{
 unsigned int i,j;
 double y;
 for(i=0;i<1000;i++)
  for(j=0;j<1000;j++)
   y++;
}

main()
{
 struct timeval tpstart,tpend;
 float timeuse;

 gettimeofday(&tpstart,NULL); // 开始时间
 function();
 gettimeofday(&tpend,NULL);   // 结束时间

 /* 计算执行时间 */
 timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+
  tpend.tv_usec-tpstart.tv_usec;
 timeuse/=1000000;

 printf("Used Time:%f/n",timeuse);
 exit(0);
}

//这个程序用于计算function()的运行时间

 

11、使程序睡眠seconds秒 unsigned int sleep(unsigned int seconds)

12、使程序睡眠usec微秒 unsigned int sleep(unsigned  long usec)

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值