第三季-第10课-时间编程
第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课-时间编程相关推荐
- 【编程题目】给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数...
第 6 题(数组) 腾讯面试题: 给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5 ...
- Quartz教程 第10课 配置、资源利用率和SchedulerFactory
第10课 配置.资源利用率和SchedulerFactory Quartz的架构是模块化的,因此要让它运行起来,需要将多个组件整合到一起.幸运地是,已经有一些工具帮助我们实现这个. 在Quartz可以 ...
- 偏执却管用的 10 条 Java 编程技巧
经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯.因为,你知道- "任何可能出错的事情,最后都会出错." 这就是人们为什么 ...
- 10款无需编程的App DIY开发工具
10款无需编程的App DIY开发工具 你有一个很棒的创意但不会编程怎么办?外包.合伙开发还是从零学编程?这里提供另外一种方式--使用无需编程的App DIY开发工具.DIY开发工具不仅节省了开发时 ...
- 10条PHP编程习惯助你找工作
过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐 趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人, ...
- Linux 应用层的时间编程【转】
转自:https://blog.csdn.net/chinalj2009/article/details/21223681 浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层 ...
- python常用字符串处理函数_Python第10课:常用的字符串处理函数
Python第10课:常用的字符串处理函数 时间 2019-01-17上午10:00 主讲 刘培富 地点 四楼电教室 1.字符的ascii码及其逆运算 ord("x") 求asci ...
- 丘成桐:用10年时间培养一批本土一流基础科学人才
用10年时间培养一批 本土一流基础科学人才 --国际数学大师丘成桐 >>>> 时隔两年,年过七旬的国际数学大师丘成桐再次踏上故土,发起卡拉比-丘(梅州蕉岭)数学大会.在接受南方 ...
- Python可以这样学(第三季:多线程与多进程编程)-董付国-专题视频课程
Python可以这样学(第三季:多线程与多进程编程)-7527人已学习 课程介绍 董付国老师系列教材<Python程序设计(第2版)>(ISBN:9787302436515 ...
- 第10课 skymvc 企业网站制作
2019独角兽企业重金招聘Python工程师标准>>> skymvc教学课程 第10课 skymvc 企业网站制作 /********** **大家好,本节课是skymvc官方教程, ...
最新文章
- 终于有人把数据、信息、算法、统计、概率和数据挖掘都讲明白了!
- 【转载】django在eclipse环境下建web网站
- MIT提出Matlab插件mNeuron:实现深度模型神经元的可视化
- h5页面的写法_8. 开始构建我们的 index.hbs 页面
- ping php支付,thinkphp框架中引出ping++支付server SDK
- C# 图片文件文本string格式 传输问题
- 整理一份程序员常用的各类工具、技术站点
- AUTOSAR从入门到精通100讲(六)-AUTOSAR中的PostBuild Data Set Generation Phase
- element-UI组件el-button样式覆写 - 生效篇
- 从虚拟化到软件定义--重新定义IT产业格局
- @property的相关属性
- php 伪静态 获取当前页面路径_php url伪静态过程详解
- 软件测试-微信红包测试点
- linux下检查磁盘是否有坏道,badblocks 检查硬盘是否有坏道
- Sniffer软件简介
- Failed to resolve:问题的解决方法
- 03-KVM虚拟磁盘格式及快照
- 洛谷P1039 侦探推理
- 为PostgreSQL配置work_mem
- 主数据建设的挑战与发展
热门文章
- SSM框架02--mybatis(1)
- Android-Universal-Image-Loader学习笔记(二)--LruDiscCache
- 北漂程序员,何以露宿街头?
- python投注_python练习 | 下注猜大小 | 入门级
- 代码统计工具有哪几种_抖音小程序如何开发及类型有哪几种?
- boot spring 获取请求端口浩_Spring boot 无端口模式启动
- mysql 取字符串首字母_MySQL通过函数获取字符串汉字拼音首字母大写字符串
- 力扣题目系列:322. 零钱兑换
- 软件工程中需要学习和掌握的软件都有哪些_高三孩子:你想学软件工程,要先知道这些...
- 从实例中学习grid布局