c--日期和时间函数
C的标准库<time.h>包含了一些处理时间与日期的函数。
1.clock_t clock(void);
函数返回程序自开始执行后的处理器时间,类型是clock_t,单位是tick。如果有错误,clock()函数就返回-1。
类型clock_t在<time.h>中定义,等价于size_t类型。CLOCKS_PER_SEC是<time.h>中定义的宏,表示一秒内的tick数,且是clock_t类型。将clock()函数返回值除以CLOCKS_PER_SEC,得到处理器运行时间。
代码示例:
#include <stdio.h>
#include<time.h>
#include<windows.h>
#include<stdlib.h>
main()
{
clock_t start,end;
double cpu_time;
start = clock();
Sleep();
end = clock();
cpu_time = (double)(end-start)/CLOCKS_PER_SEC;
printf("%.2lf",cpu_time);
system("pause");
}
输出结果:2.00
2. time_t time(time_t *time_t)
time()函数返回从1970年1月1日格林威治时间0点0分0秒到现在的秒数。类型time_t在<time.h>中定义,等价于long。
如果变元不是NULL,则返回值就存在time_t变元指向的位置中。
double difftime(time_t T2,time_t T1)
返回T2-T1的数值,类型是double,单位是秒。
代码示例:
#include <stdio.h>
#include<time.h>
#include<windows.h>
#include<stdlib.h>
main()
{
time_t calendar_start,calendar_end;
calendar_start = time(NULL);
Sleep();
calendar_end = time(NULL);
printf("start:%d\n",calendar_start);
printf("end:%d\n",calendar_end);
printf("diff:%.0lf\n",difftime(calendar_end,calendar_start));
system("pause");
}
输出结果:
start:1460010918
end:1460010920
diff:2
3.char *ctime(const time_t *timer)
函数接收一个time_t变量的指针作为变元,返回一个指向26个字符的字符串指针。其中有星期,日期,时间以及年,最后用一个\n和\0终止。如:"Mon Aug 25 10:45:36 2015\n\0"
代码示例:
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
time_t calendar;
calendar = time(NULL);
printf("%s\n",ctime(&calendar));
system("pause");
}
输出结果:Thu Apr 07 14:34:10 2016
4.struct tm *localtime(const time_t* timer)
函数接收一个time_t值的指针,返回结构类型tm的指针。
tm结构如下:
struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一 */
int tm_yday; /* 从每年的1月1日开始的天数 */
int tm_isdst; /* 夏令时标识符。*/
}
代码示例:
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
time_t calendar;
struct tm *time_data;
char *month[] = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
char *week[] = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
char *suffix[] = {"st","nd","rd","th"};
enum suffixIndex {st,nd,rd,th} sufsel = th;
calendar = time(NULL);
time_data = localtime(&calendar);
printf("format date:%d/%d/%d\n",time_data->tm_year+,time_data->tm_mon,time_data->tm_mday);
switch(time_data->tm_mday)
{
case :
case :
case :
sufsel = st;
break;
case :
case :
sufsel = nd;
break;
case :
case :
sufsel = rd;
break;
default:
sufsel = th;
break;
}
printf("today is %s,%s,%d%s,%d",week[time_data->tm_wday],month[time_data->tm_mon],time_data->tm_mday,suffix[sufsel],time_data->tm_year+);
system("pause");
}
输出结果:
format date:2016/3/7
today is 星期五,四月,7th,2016
4.localtime()函数生成的是本地时间,若要使用UTC(世界调整时间),可使用gmtime()函数
5.time_t mktime(struct tm *ptime)
函数接收一个tm结构的变元指针,返回值类型为timt_t。
c--日期和时间函数的更多相关文章
- Sql Server函数全解(四)日期和时间函数
日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...
- MySQL数据库9 - 日期与时间函数
一 日期和时间函数 函数的概念:按指定格式输入参数,返回正确结果的运算单元 1. 返回当前日期:curdate() current_date() current_date()+0可以将当前日期转换为数 ...
- sqlserver常用日期、时间函数和格式
Sql Server中常用的日期与时间函数1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 ...
- 20101102--SQL字符串函数 ,日期和时间函数
--------------------字符串函数------------------------- --ASCII 返回字符串的首字母的ASCII编码 select ASCII('w') selec ...
- Sql Server函数全解<四>日期和时间函数
原文:Sql Server函数全解<四>日期和时间函数 日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...
- MySQL 笔记 —— 日期和时间函数
[TOC] 获取当前日期的函数和获取当前时间的函数 CURDATE()和CURRENT_DATE()函数获取当前日期:CURTIME()和CURRENT_TIME()函数获取当前时间. mysql&g ...
- MySQL数据库—日期与时间函数
一. 日期和时间函数 函数的概念:按指定格式输入参数,返回正确结果的运算单元 1. 返回当前日期:curdate() current_date() current_date()+0可以将当前日期转换为 ...
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd.而且必须用英文环境下双引号(" " ...
- MySql日期与时间函数
select DATE_FORMAT(date_sub(current_date(), interval 1 day), '%Y-%m-%d') -- 2018-05-29(昨天) select DA ...
- sql的日期和时间函数–date_format
Mysql的日期和时间函数–date_format DATE_FORMAT(date,format)依照 format 字符串格式化 date 值.下面的修饰符可被用于 format 字符串中:修 ...
随机推荐
- 编译Boost库
VS版本: 虽然网络上有,但是还是记录下,找到VS的command prompt,然后切换到boost的根目录: 1.运行 bootstrap.bat 它在当前目录下会生成b2.exe2. 2.运行b ...
- data1是字符串?需要加上引号
07-22 15:55:29.832: E/AndroidRuntime(23914): FATAL EXCEPTION: main 07-22 15:55:29.832: E/AndroidRunt ...
- Asp.net中GridView使用详解(引)【转】
Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...
- Mac巧用AirDrop实现大文件传输
最近想更新一下Xcode8.3,无奈资源太大,不想一点点下载了,公司服务器上正好有官网下载好的,就想直接拿过来使用,本来想通过QQ传输的,无奈发现QQ传输提示资源过大. 于是就想到了这货:AirDro ...
- java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作
官方api教程:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started ...
- JavaScript 错误处理, Throw、Try 和 Catch入门
try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误: 可能是 ...
- 最新CoreData封装Demo
1.创建CoreData文件 2. 3. 4. UploadCoreDataAPI.h // // UploadCoreDataAPI.h // dsafsda // // Created by 冯敏 ...
- IP概念盛行的背后:资本在狂欢,电影想哭泣 IP,英文“Intellectual Property”的缩写,直译为“知识产权”。它的存在方式很多元,可以是一个故事,也可以是某一个形象,运营成功的IP可以在漫画、小说、电影、玩具、手游等不同的媒介形式中转换。
IP概念盛行的背后:资本在狂欢,电影想哭泣 IP容易拉投资.谈合作,甚至还能简化宣发途径,越来越多的人涌入了电影这个产业,争抢IP成为他们进入行业的最快捷的方法.IP盛行暴露出的另一个问题是国产电影原 ...
- 【Android】Android连接SQLite3数据库的操作
在前面使用SQLite3的时候,并没有留意到有SQLiteOpenHelper这个类,所以只好在Activity里面去创建和维护数据库跟数据表的创建. 但是,现在有了SQLiteOpenHelper这 ...
- 【Spring】SpringMVC之详解AOP
1,AOP简介 Aspect Oriented Programming 面向切面编程.AOP还是以OOP为基础,只不过将共同逻辑封装为组件,然后通过配置的方式将组件动态切入到原有组件中.这样做的有点 ...