time()等时间函数的使用
一、time函数
函数名:time()
功能:获取当前的系统时间
用法:time_ttime(time_t * time)
对应的头文件:time.h
说明:
time函数的返回值是long的类型,
其精度为秒,
其形参一般选为NULL(即time(NULL)).
其值为从CUT(CoordinatedUniversal Time)时间(即1970年1月1日00:00:00,也就是UNIX系统的Epoch时间)到当前时刻的秒数,但因为“time_t“使用一个有符号的32位整数(signed int32)来存储计算的秒数,所以其最后时间是2147483647秒(也就是格林乔治时间2038年1月19日凌晨03:14:07),但就是个小知识点,不用太关心。
因为time的精度为秒,所以如果对一些时间要求更精确点,便得使用精度更高的时间函数,不然其结果就会如下面的程序一样,结果一直一样,这是因为短期的循环计算机不会花费太多的时间。
# include
# include # include <windows.h>int main()
{for(int i=0;i<1000;i++) {printf("%d\n", GetTickCount(NULL));for(int j=0;j<1000;j++);}return 0;
}
二、更高精度的时间函数
1、gettimeofday
函数名:gettimeofday
功能:获取当前的精确系统时间
用法:int gettimeofday(structtimeval * tv,struct timezone *tz);
对应的头文件:sys/time.h
说明:
其参数tv是保存获取时间结果的结果体,参数tz用于保存时区结果:
struct timezone{
inttz_minuteswest; //格林威治时间往西方的时差
inttz_dsttime; //DST时间的修正方式
}
timezone参数若不使用则可设为NULL(如:gettimeofday(tv,NULL)),
struct timeval{
long int tv_sec; //秒数
long int tv_usec; //微妙数
}
使用gettimeofday()函数还需要先定义一下struct timeval的变量,
而使用gettimeofday()获得的时间的精度会精确到微妙(1e-6s)量级。
其值为从CUT(CoordinatedUniversal Time)时间(即1970年1月1日00:00:00,也就是UNIX系统的Epoch时间)到当前时刻的秒数,其也与time一样存在着2038年的问题。
但它是适用于Linux系统的,在windows下面使用比较麻烦,而windows也存在这类似功能的函数。
2、GetLocalTime
函数名:GetLocalTime
功能:获取当前的精确系统时间
用法:voidGetLocalTime(LPSYSTEMTIME lpSystemtime)
对应的头文件:windows.h
说明:
其参数lpSystemtime是指向一个用户自定义包含日期和时间信息的SYSTEMTIME类型的变量,该变量可用于保存函数获取的时间。
typedef struct SYSTEMTIME{
WORD wYear; //年
WORD wMonth; //月
WORD wDayOfWeek; //星期,0为星期日,1为星期一,2为星期二……
WORD wDay; //日
WORD wHour; //时
WORD wMinute; //分
WORD wSecond; //秒
WORD wMilliseconds; //毫秒
}SYSTEMTIME,*PSYSTEMTIME;
一般将GetLocalTime转化为gettimeofday来提高程序在windows和Linux的通用性。
#include
#ifdef WIN32#include #else#include #endif#ifdef WIN32
int gettimeofday(struct timeval *tp, void *tzp)
{time_t clock;struct tm tm;SYSTEMTIME wtm;GetLocalTime(&wtm);tm.tm_year = wtm.wYear - 1900;tm.tm_mon = wtm.wMonth - 1;tm.tm_mday = wtm.wDay;tm.tm_hour = wtm.wHour;tm.tm_min = wtm.wMinute;tm.tm_sec = wtm.wSecond;tm.tm_isdst = -1;clock = mktime(&tm);tp->tv_sec = clock;tp->tv_usec = wtm.wMilliseconds * 1000;return (0);
}
#endif
3、GetTickCount函数
函数名:GetTickCount
功能:获取当前的精确系统时间
用法:DWROD GetTickCount(void)
对应的头文件:windows.h
说明:
其返回了从操作系统启动所经过的毫秒数,其返回值为32位的双字类型DWROD。
# include
# include # include int main()
{for(int i=0;i<1000;i++) {printf("%d\n", GetTickCount(NULL));for(int j=0;j<1000;j++);}return 0;
}
{
int time_first = 0;
int time_end = 0;
time_first = (int)(GetTickCount());
while (1){
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 10000; j++);
time_end = (int)(GetTickCount());
if (time_end >(time_first + n))
break;
}
}
time()等时间函数的使用相关推荐
- MySQL 学习笔记(3)— 字符串函数、数值函数、日期时间函数、流程函数、聚集函数以及分组数据
1. 字符串函数 MySQL 的常用函数包括字符串函数.数值函数.日期时间函数.流程函数等. SELECT ascii("abc"),char(97),concat("h ...
- java调用系统时间函数_JAVA自学笔记:不使用系统函数来计算日期处于当年的第多少天...
前段时间练习了一个求闰年的功能,现在就可以用上啦,这次写一个不借助类库的时间函数,利用基础代码写一个计算求日期处于当年的第多少天的函数. 虽然也有简单的方法,例如直接定义每月的天数累加,然后加上当月的 ...
- SqlServer时间函数的使用例子整理
为什么80%的码农都做不了架构师?>>> 整理SqlServer2008的时间函数如下: 1.获取系统时间 select getdate(); --2012-05-06 22: ...
- Sql Server函数全解(四)日期和时间函数
阅读目录 1.获取系统当前日期的函数getDate(); 2.返回UTC日期的函数UTCDATE() 3.获取天数的函数DAY(d) 4.获取月份的函数MONTH(d) 5.获取年份的函数YEAR(d ...
- PHP 中日期时间函数 date() 用法总结
[导读] date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考.格式化日期date() 函数的第一个参数规定了如何格式化日期 时间.它 ...
- php入门时间,php入门教程(二十一) php日期与时间函数
本节内容: php日期与时间函数 PHP提供了很多的处理日期和时间的函数,包括time().date().mktime().checkdate().microtime().strtotime()等,详 ...
- python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...
1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...
- mysql 时区与时间函数
--在mysql中可以直接使用sleep()函数,sysdate函数返回的是执行到当前函数的时间,而now函数返回的是执行sql的时间 mysql> SELECT now(),SYSDATE() ...
- pg数据库生成随机时间_postgresql 时区与时间函数-阿里云开发者社区
postgresql 时区与时间函数 rudygao 2016-02-03 1951浏览量 简介: --把时间戳转成epoch值 postgres=# select extract(epoch fro ...
- Sql server中时间函数用法详解
SQL中的时间函数非常有用,特别是在我们进行初始赋值.复杂查询的时候,就显得特别方便. 1.获得系统当前时间 select getdate() 2.DateName ( datepart , dat ...
最新文章
- AngularJs学习笔记--Forms
- OutputCache各参数的说明【转】
- python实现傅里叶变换求幅值和相位_Python 实现图像快速傅里叶变换和离散余弦变换...
- lucene使用3.0.3_Apache Lucene 5.0.0即将发布!
- 【算法分析与设计】浅析算法复杂度
- C#中is vs as
- Windows互斥锁的使用
- 服务器自动post,Go Web服务器自动重定向POST请求
- bzoj 4129 Haruna’s Breakfast 树上莫队
- 查看python版本和django版本
- SQLite Tutorial 4 : How to export SQLite file into CSV or Excel file
- React.js小书
- 网赚APP资源下载类网站源码
- 华为快应用 阻止事件冒泡
- 大国的崛起:第二集:小国大业 荷兰
- 使用000webhost.com免费主机搭建一个WordPress站点
- html和css的图片怎么加,html+css如何在图片上添加文字
- 如何使用Elasticsearch构建强大的搜索和分析应用程序(2023年最新ES新手教程)
- Zoom Out and Observe:News Environment Perception for Fake News Detection
- 锚点的作用是什么?如何创建锚点?