C中的时间函数的用法
C中的时间函数的用法
这个类展示了C语言中的时间函数的常用的用法。
源代码:
#include <ctime>
#include <iostream>
using namespace std;
class MyTime
{
public:
MyTime() { mPTime = 0; mStLocalTime = 0; mStGMTTime = 0; }
~MyTime() {};
//time_t time(time_t * timer) 返回自1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。
time_t GetTime() { return time(0); }
//time_t time(time_t * timer) 将自1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数设定到t指向的一个长整形变量里。
time_t GetTimeB() { time(&mPTime); return mPTime; }
//struct tm *localtime(const time_t *clock) 可以将时间戳转换为一个时间结构体,且时间为经过时区转化的本地时间。
int GetYear() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_year; }
int GetMonth() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_mon; }
int GetDate() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_mday; }
int GetHour() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_hour; }
int GetMinute() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_min; }
int GetSecond() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_sec; }
int GetWeekDay() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_wday; }
int GetYearDay() { GetTimeB(); mStLocalTime = localtime(&mPTime); return mStLocalTime->tm_yday; }
//char *asctime(const struct tm *tblock) 将换日期和时间的结构体转换为相应的字符串。
char *GetTimeStr() { GetTimeB(); mStLocalTime = localtime(&mPTime); return asctime(mStLocalTime); }
//char *ctime(const time_t *time) 将时间戳转换为响应的字符串。
char *GetLocalTimeStr2() { GetTimeB(); return ctime(&mPTime); }
//tzset() 为设置时区。
//struct tm *gmtime(long *clock) 把日期和时间转换为格林威治(GMT)时间。
char *GetGMTTimeStr() { tzset(); GetTimeB(); mStGMTTime = gmtime(&mPTime); return asctime(mStGMTTime); }
//time_t mktime(strcut tm * timeptr) 将struct tm格式的时间转换为时间戳。
time_t GetTime3() { time(&mPTime); mStLocalTime = localtime(&mPTime); return mktime(mStLocalTime); }
//double difftime(time_t time1, time_t time0) 计算时间间隔才长度,以秒为单位,且只能精确到秒
double CalDuration(time_t t1, time_t t2) { return difftime(t1,t2); }
//size_t strftime(char *strDest,size_t maxsize,const char *format,const struct tm *timeptr);
//将时间格式化,或者说:格式化一个时间字符串。
//根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中,最多向strDest中存放maxsize个字符。
void FormatTime( char *str) { time(&mPTime); strftime(str,100,"%Y-%m-%d",localtime(&mPTime)); }
private:
time_t mPTime; //time_t 实际上是个长整形,用于保存自1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。
struct tm *mStLocalTime;
struct tm *mStGMTTime;
};
int main(int argc, char *argv[])
{
cout<<"process begin @["<<(void*)&main<<"]"<<endl;
MyTime myTime;
cout<<"current Time 1 is ["<<myTime.GetTime()<<"]"<<endl;
cout<<"current Time 2 is ["<<myTime.GetTimeB()<<"]"<<endl;
cout<<"current Time 3 is ["
<<myTime.GetYear() + 1900<<"-"<<myTime.GetMonth()<<"-"<<myTime.GetDate()<<" "
<<myTime.GetHour()<<":"<<myTime.GetMinute()<<":"<<myTime.GetSecond()<<"]"<<endl;
cout<<"current Time week day is ["<<myTime.GetWeekDay()<<"]"<<endl;
cout<<"current Time year day is ["<<myTime.GetYearDay()<<"]"<<endl;
cout<<"current Time 4 is ["<<myTime.GetTimeStr()<<"]"<<endl;
cout<<"current Time 5 is ["<<myTime.GetLocalTimeStr2()<<"]"<<endl;
cout<<"current Time 6 (GMT time) is ["<<myTime.GetGMTTimeStr()<<"]"<<endl;
cout<<"current Time 7 is ["<<myTime.GetTime3()<<"]"<<endl;
cout<<"calculate duration of ["<<myTime.GetTime3()<<"] and ["<<myTime.GetTime3() - 1<<"] is ["
<<myTime.CalDuration(myTime.GetTime3(), myTime.GetTime3() - 1 )<<"]"<<endl;
char szTime[20] = {0};
myTime.FormatTime(szTime);
cout<<"current Time 8 is ["<<szTime<<"]"<<endl;
return 0;
}
输出结果:
process begin @[0x4016b0]
current Time 1 is [1416756697]
current Time 2 is [1416756697]
current Time 3 is [2014-10-23 23:31:37]
current Time week day is [0]
current Time year day is [326]
current Time 4 is [Sun Nov 23 23:31:37 2014
]
current Time 5 is [Sun Nov 23 23:31:37 2014
]
current Time 6 (GMT time) is [Sun Nov 23 15:31:37 2014
]
current Time 7 is [1416756697]
calculate duration of [1416756697] and [1416756696] is [1.41676e+009]
current Time 8 is [2014-11-23]
C中的时间函数的用法的更多相关文章
- PHP中日期时间函数date()用法总结
date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考. 格式化日期date() 函数的第一个参数规定了如何格式化日期/时间.它使用字母 ...
- ylb:SQL Server中的时间函数
ylbtech-SQL Server:SQL Server-SQL Server中的时间函数 SQL Server中的时间函数. 1,SQL Server中的时间函数 返回顶部 1. 当前系统日期 ...
- 借助JavaScript中的时间函数改变Html中Table边框的颜色
借助JavaScript中的时间函数改变Html中Table边框的颜色 <html> <head> <meta http-equiv="Content-Type ...
- C语言中关于scanf函数的用法
scanf()函数的控制串 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化 ...
- JavaScript中字符串分割函数split用法实例
这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...
- (转)Python中的split()函数的用法
Python中的split()函数的用法 原文:https://www.cnblogs.com/hjhsysu/p/5700347.html Python中有split()和os.path.split ...
- C++中的时间函数
C++获取时间函数众多,何时该用什么函数,拿到的是什么时间?该怎么用?很多人都会混淆. 本文是本人经历了几款游戏客户端和服务器开发后,对游戏中时间获取的一点总结. 最早学习游戏客户端时,为了获取最精确 ...
- SQLSERVER数据库中的 时间函数
一.sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返 ...
- 【推荐】PHP中格式化时间函数date与gmdate的区别 | 修改PHP的默认时区
PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为: date -- 格式化一个本地时间/日期 gmdate -- 格式化一个 GMT/UTC 日期/时间,返回的是 ...
随机推荐
- Python socket编程之IO模型介绍(多路复用*)
1.I/O基础知识 1.1 什么是文件描述符? 在网络中,一个socket对象就是1个文件描述符,在文件中,1个文件句柄(即file对象)就是1个文件描述符.其实可以理解为就是一个“指针”或“句柄”, ...
- POJ 3468 A Simple Problem with Integers 【线段树】
题目链接 http://poj.org/problem?id=3468 思路 线段树 区间更新 模板题 在赋初始值的时候,按点更新区间就可以 AC代码 #include <cstdio> ...
- nginx负载均衡详情
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
- flask实现模仿知乎
上个月花了一个月的时间学习flask框架实现了一个简陋的知乎,有提问,回答,写文章,个人信息页,个人信息修改等功能,因刚接触学习flask,后端代码实现很多冗余,依旧需要修改. github: htt ...
- 如何在IAR中配置CRC参数(转)
源:如何在IAR中配置CRC参数 前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间.CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时 ...
- iOS_核心动画(二)
目 录: 一.Core Animation开发步骤 二.Core Animation的继承结构 三.CAAnimation常用的属性 四.CAPropertyAnimation(属性动画) 五.CAB ...
- INSPIRED启示录 读书笔记 - 第22章 原型测试
物色测试者 1.如果你已经拥有一批特约用户,可以邀请他们参加测试 2.如果是企业级产品,同类产品的展销会是寻找目标用户的好去处 3.可以在分类信息网站上发布广告,征集测试者.征集要求可以写得笼统些,不 ...
- 机器学习性能指标之ROC和AUC理解与曲线绘制
一. ROC曲线 1.roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性. 横轴:负正类率(false po ...
- 高通LCD驱动调试
本文转载自:http://www.itgo.me/a/x6305658852004979994/lcd%20qcom 来自 :http://blog.csdn.net/dacaozuo/article ...
- iBatis.net 第一篇 搭建
iBatis.net 和 iBatis 是有区别的,一个是在net下使用的,另一个是在java下使用. 要想使用,需要下载相关iBatis.net包 1.下载iBatis.net,在网上有很多下载cs ...