第10课-时间编程

10.1 时间类型

Codinated Universal Time(UTC):世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。

Calendar Time:日历时间,是用“从一个标准时间点(如:1970年1月1日0点)到此经过的秒数”来表示的时间。

10.2 函数学习

这里面的函数学习方法是和之前的学习方法一致的,即三步学习法:函数名;函数原型;函数使用。

1. 获取日历时间

(1) 函数名

time

(2) 函数原形

time_t time(time_t *t);

(3) 函数功能

返回日历时间

(4) 所属头文件

#include<time.h>

(5) 返回值

成功:日历时间

失败:-1

(6) 参数说明

t:不为空的情况下保存返回值。

(7) 范例程序

#include<time.h>

void main()

{

time_t ctime;

ctime = time(NULL);

printf("ctime is %d\n",ctime);

}

2. 获取格林威治时间

(1) 函数名

gmtime

(2) 函数原形

struct tm *gmtime(const time_t *timep);

(3) 函数功能

将参数timep所指定的日历时间抓华为标准时间。

(4) 所属头文件

#include<time.h>

(5) 返回值

strict tm

{

int tm_sec;             //seconds

int tm_min;            //minutes

int tm_hour;           //hours

int tm_mday;                        //day of the month

int tm_mon;            //month

int tm_year;            //year

int tm_wday;           //day of the week

int tm_yday;           //day in the year

int tm_isdst;           //daylight saving time

};

成功:世界标准时间,以struct tm形式存储的

失败:NULL

(6) 参数说明

timep:带转化的世界时间

(7) 范例程序

#include<time.h>

void main()

{

time_t ctime;

struct tm *tm;

ctime = time(NULL);

//将日历时间转化为标准时间

tm = gmtime(&ctime);

printf("now is hour %d,min is %d\n",tm->tm_hour,tm->tm_min);

//注意对于结构体内的成员的标识方法。

}

3. 获取本地时间

(1) 函数名

localtime()

(2) 函数原形

struct tm *localtime(const time_t *timep);

(3) 函数功能

将参数timep所指向的日历时间转化为本地时间。

(4) 所属头文件

#include<time.h>

(5) 返回值

strict tm

{

int tm_sec;             //seconds

int tm_min;            //minutes

int tm_hour;           //hours

int tm_mday;                       //day of the month

int tm_mon;            //month

int tm_year;            //year

int tm_wday;           //day of the week

int tm_yday;           //day in the year

int tm_isdst;           //daylight saving time

};

成功:返回以结构体tm存储的本地时间

失败:NULL

(6) 参数说明

timep:待转化的日历时间

(7) 范例程序

#include<time.h>

void main()

{

time_t ctime;

struct tm *tm;

ctime = time(NULL);

//将日历时间转化为本地时间

tm = localtime(&ctime);

printf("now is hour %d,min is %d\n",tm->tm_hour,tm->tm_min);

}

注:为了验证我们的程序是正确的,我们可以通过date命令来查看时间,会发现和我们上面程序打印出来的时间是一样的。

4. 字符串(格式化)方式显示时间

(1) 函数名

asctime

(2) 函数原形

char *asctime(const struct tm *tm);

(3) 函数功能

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

(4) 所属头文件

#include<time.h>

(5) 返回值

字符串方式显示的时间

(6) 参数说明

tm:待转化的tm格式的时间

(7) 范例程序

#include<time.h>

void main()

{

time_t ctime;

struct tm *tm;

char *stime;

ctime = time(NULL);

//将日历时间转化为本地时间

tm = gmtime(&ctime);

printf("now is hour %d,min is %d\n",tm->tm_hour,tm->tm_min);

stime = asctime(tm);

printf("time is %s\n",stime);

}

5. 获取高精度时间

(1) 函数名

gettimeofday();

(2) 函数原形

int gettimeofday(struct timeval *tv, strct timezone *tz);

(3) 函数功能

获取高精度的时间。

(4) 所属头文件

#include<sys/time.h>

(4) 返回值

成功:0;

失败:-1

(6) 参数说明

struct timeval

{

time_t       tv_sec;     //seconds

Suseconds_t  tv_usec;    //microseconds

}

strutct timezone

{

int  tz_minuteswest;      //minutes west of Greewich

int  tz_dsttime;          //type of DST correction

}

tv:保存从1970年1月1日0:0:0到现在经历的秒数和微秒数;

tzone:通常为NULL

(7) 范例程序

下面的程序用来检测func()函数运行的时间,这里我们用了头文件#include<stdio.h>,因为NULL符号的使用需要这个头文件。

#include<sys/time.h>

#include<stdio.h>

void func()

{

int i,j;

int ret;

for(i=0;i<1000;i++)

for(j=0;j<1000;j++)

ret = j;

}

void main()

{

int i,j;

struct timeval tv1;

struct timeval tv2;

gettimeofday(&tv1,NULL);

func();

gettimeofday(&tv1,NULL);

i = tv2.tv_sec-tv1.tv_sec;

j = tv2.tv_usec-tv1.tv_usec;

printf("sec is %d,usec is%d\n",i,j);

}

10.3 总结

转载于:https://www.cnblogs.com/free-1122/p/11345373.html

第三季-第10课-时间编程相关推荐

  1. 【编程题目】给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数...

    第 6 题(数组) 腾讯面试题: 给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5 ...

  2. Quartz教程 第10课 配置、资源利用率和SchedulerFactory

    第10课 配置.资源利用率和SchedulerFactory Quartz的架构是模块化的,因此要让它运行起来,需要将多个组件整合到一起.幸运地是,已经有一些工具帮助我们实现这个. 在Quartz可以 ...

  3. 偏执却管用的 10 条 Java 编程技巧

    经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯.因为,你知道- "任何可能出错的事情,最后都会出错." 这就是人们为什么 ...

  4. 10款无需编程的App DIY开发工具

    10款无需编程的App DIY开发工具 你有一个很棒的创意但不会编程怎么办?外包.合伙开发还是从零学编程?这里提供另外一种方式--使用无需编程的App  DIY开发工具.DIY开发工具不仅节省了开发时 ...

  5. 10条PHP编程习惯助你找工作

    过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐 趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人, ...

  6. Linux 应用层的时间编程【转】

    转自:https://blog.csdn.net/chinalj2009/article/details/21223681 浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层 ...

  7. python常用字符串处理函数_Python第10课:常用的字符串处理函数

    Python第10课:常用的字符串处理函数 时间 2019-01-17上午10:00 主讲 刘培富 地点 四楼电教室 1.字符的ascii码及其逆运算 ord("x") 求asci ...

  8. 丘成桐:用10年时间培养一批本土一流基础科学人才

    用10年时间培养一批 本土一流基础科学人才 --国际数学大师丘成桐 >>>> 时隔两年,年过七旬的国际数学大师丘成桐再次踏上故土,发起卡拉比-丘(梅州蕉岭)数学大会.在接受南方 ...

  9. Python可以这样学(第三季:多线程与多进程编程)-董付国-专题视频课程

    Python可以这样学(第三季:多线程与多进程编程)-7527人已学习 课程介绍         董付国老师系列教材<Python程序设计(第2版)>(ISBN:9787302436515 ...

  10. 第10课 skymvc 企业网站制作

    2019独角兽企业重金招聘Python工程师标准>>> skymvc教学课程 第10课 skymvc 企业网站制作 /********** **大家好,本节课是skymvc官方教程, ...

最新文章

  1. 终于有人把数据、信息、算法、统计、概率和数据挖掘都讲明白了!
  2. 【转载】django在eclipse环境下建web网站
  3. MIT提出Matlab插件mNeuron:实现深度模型神经元的可视化
  4. h5页面的写法_8. 开始构建我们的 index.hbs 页面
  5. ping php支付,thinkphp框架中引出ping++支付server SDK
  6. C# 图片文件文本string格式 传输问题
  7. 整理一份程序员常用的各类工具、技术站点
  8. AUTOSAR从入门到精通100讲(六)-AUTOSAR中的PostBuild Data Set Generation Phase
  9. element-UI组件el-button样式覆写 - 生效篇
  10. 从虚拟化到软件定义--重新定义IT产业格局
  11. @property的相关属性
  12. php 伪静态 获取当前页面路径_php url伪静态过程详解
  13. 软件测试-微信红包测试点
  14. linux下检查磁盘是否有坏道,badblocks 检查硬盘是否有坏道
  15. Sniffer软件简介
  16. Failed to resolve:问题的解决方法
  17. 03-KVM虚拟磁盘格式及快照
  18. 洛谷P1039 侦探推理
  19. 为PostgreSQL配置work_mem
  20. 主数据建设的挑战与发展

热门文章

  1. SSM框架02--mybatis(1)
  2. Android-Universal-Image-Loader学习笔记(二)--LruDiscCache
  3. 北漂程序员,何以露宿街头?
  4. python投注_python练习 | 下注猜大小 | 入门级
  5. 代码统计工具有哪几种_抖音小程序如何开发及类型有哪几种?
  6. boot spring 获取请求端口浩_Spring boot 无端口模式启动
  7. mysql 取字符串首字母_MySQL通过函数获取字符串汉字拼音首字母大写字符串
  8. 力扣题目系列:322. 零钱兑换
  9. 软件工程中需要学习和掌握的软件都有哪些_高三孩子:你想学软件工程,要先知道这些...
  10. 从实例中学习grid布局