设为首页 加入收藏

TOP

[ThinkingInC++]48、用标准C库中的时间函数生成简单的Time类
2015-07-20 17:43:24 来源: 作者: 【 】 浏览:4
Tags:ThinkingInC 标准 时间 函数 生成 简单 Time

Cpptime.h

?

?

/**
* 书本:【ThinkingInC++】
* 功能:用标准C库中的时间函数生成简单的Time类
* 时间:2014年9月11日07:53:56
* 作者:cutter_point
*/
#ifndef CPPTIME_H_INCLUDED
#define CPPTIME_H_INCLUDED

#include
  
   
#include
   
     //这里ctime和cstring是不包含using namespace std;的而后面加.h是C中的,是包含using namespace std;的 /* 而直接存储年月日的是一个结构: struct tm { int tm_sec; /*秒,正常范围0-59, 但允许至61* int tm_min; /*分钟,0-59* int tm_hour; /*小时, 0-23* int tm_mday; /*日,即一个月中的第几天,1-31* int tm_mon; /*月, 从一月算起,0-11*/ /*1+p->tm_mon; int tm_year; /*年, 从1900至今已经多少年* 1900+ p->tm_year; int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6* int tm_yday; /*从今年1月1日到目前的天数,范围0-365* int tm_isdst; /*日光节约时间的旗标* }; */ #include
    
      class Time { std::time_t t; //time_t是一个类型time_t 这种类型就是用来存储从1970年到现在经过了多少秒 std::tm local; //tm是一个结构 char asciiRep[26]; unsigned char lflag, aflag; void updateLocal() { if(!lflag) { /* struct tm* gmtime(const time_t *timep); 将time_t表示的时间转换为没有经过时区转换的时间,是一个struct tm结构指针, struct tm* localtime(const time_t *timep); 和gmtime类似,但是它是经过时区转换的时间。 time_t 这种类型就是用来存储从1970年到现在经过了多少秒 这个函数就是把秒转换成我们看得懂的时间 */ local=*std::localtime(&t); ++lflag; } } void updateAscii() { if(!aflag) { updateLocal(); /* char *asctime(const struct tm* timeptr); 将结构中的信息转换为真实世界的时间,以字符串的形式显示 strcpy(char*, string/char*) 将第二个字符串拷贝到第一个上面 */ // std::cout<<"???"<
     
      t)); } int daylightSaving() { updateLocal(); //int tm_isdst; //日光节约时间的旗标 return local.tm_isdst; } /* 而直接存储年月日的是一个结构: struct tm { int tm_sec; /*秒,正常范围0-59, 但允许至61* int tm_min; /*分钟,0-59* int tm_hour; /*小时, 0-23* int tm_mday; /*日,即一个月中的第几天,1-31* int tm_mon; /*月, 从一月算起,0-11*/ /*1+p->tm_mon; int tm_year; /*年, 从1900至今已经多少年* 1900+ p->tm_year; int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6* int tm_yday; /*从今年1月1日到目前的天数,范围0-365* int tm_isdst; /*日光节约时间的旗标* }; */ int dayOfYear() { // int tm_yday; /*从今年1月1日到目前的天数,范围0-365* updateLocal(); return local.tm_yday; } int dayOfWeek() { // int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6* updateLocal(); return local.tm_wday; } int since1900() { // int tm_year; /*年, 从1900至今已经多少年* 1900+ p->tm_year; updateLocal(); return local.tm_year; } int month() { // int tm_mon; /*月, 从一月算起,0-11*/ /*1+p->tm_mon; updateLocal(); return local.tm_mon; } int dayOfMonth() { // int tm_mday; /*日,即一个月中的第几天,1-31 updateLocal(); return local.tm_mday; } int hour() { // int tm_hour; /*小时, 0-23* updateLocal(); return local.tm_hour; } int minute() { // int tm_min; /*分钟,0-59* updateLocal(); return local.tm_min; } // int tm_sec; /*秒,正常范围0-59, 但允许至61* int second() { updateLocal(); return local.tm_sec; } }; #endif // CPPTIME_H_INCLUDED 
     
    
   
  

?

?

Cpptime.cpp

?

?

/**
* 书本:【ThinkingInC++】
* 功能:测试C++时间类
* 时间:2014年9月11日07:54:38
* 作者:cutter_point
*/

#include"Cpptime.h"
#include
  
   

using namespace std;

int main()
{
    Time start;

    for(int i=1 ; i<5000 ; ++i)
    {
        cout<
  
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇7种排序 C++实现 下一篇hdu 3359 Kind of a Blur

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)