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中的时间函数的用法的更多相关文章

  1. PHP中日期时间函数date()用法总结

    date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考. 格式化日期date() 函数的第一个参数规定了如何格式化日期/时间.它使用字母 ...

  2. ylb:SQL Server中的时间函数

    ylbtech-SQL Server:SQL Server-SQL Server中的时间函数 SQL Server中的时间函数. 1,SQL Server中的时间函数 返回顶部 1.   当前系统日期 ...

  3. 借助JavaScript中的时间函数改变Html中Table边框的颜色

    借助JavaScript中的时间函数改变Html中Table边框的颜色 <html> <head> <meta http-equiv="Content-Type ...

  4. C语言中关于scanf函数的用法

    scanf()函数的控制串 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化 ...

  5. JavaScript中字符串分割函数split用法实例

    这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...

  6. (转)Python中的split()函数的用法

    Python中的split()函数的用法 原文:https://www.cnblogs.com/hjhsysu/p/5700347.html Python中有split()和os.path.split ...

  7. C++中的时间函数

    C++获取时间函数众多,何时该用什么函数,拿到的是什么时间?该怎么用?很多人都会混淆. 本文是本人经历了几款游戏客户端和服务器开发后,对游戏中时间获取的一点总结. 最早学习游戏客户端时,为了获取最精确 ...

  8. SQLSERVER数据库中的 时间函数

    一.sql server日期时间函数 Sql Server中的日期与时间函数 1.  当前系统日期.时间 select getdate() 2. dateadd  在向指定日期加上一段时间的基础上,返 ...

  9. 【推荐】PHP中格式化时间函数date与gmdate的区别 | 修改PHP的默认时区

    PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为: date -- 格式化一个本地时间/日期 gmdate -- 格式化一个 GMT/UTC 日期/时间,返回的是 ...

随机推荐

  1. Python 5 面对对象编程

    面向对象编程: 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程 ...

  2. php基础知识测试总结

    1.LAMP具体结构包括Linux系统,Apache服务器,MySQL数据库,PHP语言. WAMP具体结构包括Windows系统,Apache服务器,MySQL数据库,PHP语言. 2.B/S架构: ...

  3. iOS 点击注释图标 弹出对应解释

    需求:如题目  接上一篇的开发内容 效果图: 这种情况存在tableView 的一个cell中. 要点 1,  弹出的对应解释 要在可视区域,并且小尖角 要指着 图片 2,  文本不能过高 有极大高度 ...

  4. 一步步讲解如何开源自己的项目到GitHub上,Mac机示例

    如果你有自己的优秀项目,想要分享给大家,那GitHub会是你正确的选择.如何才能将自己的项目上传到GitHub上呢?接下来请一步一步跟着走. 需要准备的资源: 1.一台Mac机 2.安装git客户端( ...

  5. Tooltip表单验证的注册表单

    在线演示 本地下载

  6. RHEL 7 安装 ngnix

    安装ngnix yum install -y make apr* autoconf automake curl curl-devel gcc gcc-c++ gtk+-devel zlib-devel ...

  7. 探究操作系统【TLCL】

    ls – List directory contents file – Determine file type less – View file contents ls常用选项 ls -a 全部输出 ...

  8. HDFS数据完整性

    数据完整性 Hadoop用户肯定都希望系统在存储和处理数据时不会丢失或损坏任何数据.尽管磁盘或网络上的每个I/O操作不太可能将错误引入自己正在读/写的数据中,但是如果系统中需要处理的数据量大到Hado ...

  9. java 实现HTTP连接(HTTPClient)

    在实习中,使用到了http连接,一直理解的很模糊,特地写个分析整理篇.分析不到位的地方请多多指教. Http 目前通用版本为 http 1.1 . Http连接大致分为2种常用的请求——GET,POS ...

  10. 解决fasterxml中string字符串转对象json格式错误问题

    软件152 尹以操 springboot中jackson使用的包是fasterxml的.可以通过如下代码,将一个形如json格式string转为一个java对象: com.fasterxml.jack ...