C++每日练笔之时间类(基类)
2019独角兽企业重金招聘Python工程师标准>>>
在我的命名空间TYCppStdLib中对于日期和时间的操作非常丰富。
共有六个类和一组全局函数。
六个类分别是:
CDate
CTime
CDateAndTime
CMyDate
CMyTime
CMyDateAndTime前三个类不带类的成员变量,直接操作用户给定的数据。
前三个类的成员函数与全局函数一一对应。
后三个类带类的成员变量,成员函数操作类的成员变量。现在发布的是CTime类(基类,完成基本功能,待更新)。源代码如下:
/*- ==========================================================
* 文件名 :CTime.h
* 开发人员:袁培荣
* 当前版本:1.0.0.2595
* 创建时间:2012-04-23
* 修改时间:2012-05-01
* 功能说明:时间类(基类)
* 版权说明:版权所有 袁培荣 YuanPeirong
* 编译环境:Windows 7(x64) SP1 简体中文专业版
* 编译器: Visual Studio 2010 SP1(中文旗舰版)MinGW 2011118Visual C++ 6.0 SP6(中文企业版)
- ==========================================================*/#ifndef CTime_H_TYCppStdLib
#define CTime_H_TYCppStdLib#ifdef CTime_DLL_API
#else
#define CTime_DLL_API _declspec(dllimport)
#endif#include <string>
#include "Windows.h"using namespace std;namespace TYCppStdLib
{ class CTime_DLL_API CTime{public:CTime();virtual ~CTime();virtual int GetHour(); // 获取时virtual int GetMinute(); // 获取分virtual int GetSecond(); // 获取秒virtual bool SetHour(int hour); // 设置时virtual bool SetMinute(int minute); // 设置分virtual bool SetSecond(int second); // 设置秒// 获取时间virtual void GetTime(int &hour,int &minute,int &second);//virtual string GetTime(const string strDivide="-");//virtual void GetTime(char *times,char *divide=":");// 设置时间virtual bool SetTime(int hour,int minute,int second); //virtual bool SetTime(char *times);// 检查时间是否合法virtual bool TimeIsValid(int hour,int minute,int second); };
}#endif
/*- ==========================================================
* 文件名 :CTime.cpp
* 开发人员:袁培荣
* 当前版本:1.0.0.2595
* 创建时间:2012-04-23
* 修改时间:2012-05-01
* 功能说明:时间类(基类)
* 版权说明:版权所有 袁培荣 YuanPeirong
* 编译环境:Windows 7(x64) SP1 简体中文专业版
* 编译器: Visual Studio 2010 SP1(中文旗舰版)MinGW 2011118Visual C++ 6.0 SP6(中文企业版)
- ==========================================================*/#ifndef CTime_DLL_ForAPI
#define CTime_DLL_ForAPI#define CTime_DLL_API _declspec(dllexport)#endif#include "../../Include/DateAndTime/CTime.h"/* typedef struct _SYSTEMTIME { // st WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME; *///构造函数
TYCppStdLib::CDate::CTime()
{//空函数
}//析构函数
TYCppStdLib::CDate::~CTime()
{//空函数
}// 获取时
int TYCppStdLib::CTime::GetHour()
{SYSTEMTIME st;GetLocalTime(&st);return st.wHour;
}// 获取分
int TYCppStdLib::CTime::GetMinute()
{SYSTEMTIME st;GetLocalTime(&st);return st.wMinute;
}// 获取秒
int TYCppStdLib::CTime::GetSecond()
{SYSTEMTIME st;GetLocalTime(&st);return st.wSecond;
}// 设置时
bool TYCppStdLib::CTime::SetHour(int hour)
{SYSTEMTIME st;if(hour<0 || hour>23)return false;GetLocalTime(&st);st.wHour=hour;if(SetLocalTime(&st))return true;return false;
}// 设置分
bool TYCppStdLib::CTime::SetMinute(int minute)
{SYSTEMTIME st;if(minute<0 || minute>59)return false;GetLocalTime(&st);st.wMinute=minute;if(SetLocalTime(&st))return true;return false;
}// 设置秒
bool TYCppStdLib::CTime::SetSecond(int second)
{SYSTEMTIME st;if(second<0 || second>59)return false;GetLocalTime(&st);st.wSecond=second;if(SetLocalTime(&st))return true;return false;
}// 获取时间
void TYCppStdLib::CTime::GetTime(int &hour,int &minute,int &second)
{hour=GetHour();minute=GetMinute();second=GetSecond();
}// void TYCppStdLib::CTime::GetTime(char *times,char *divide=":")
// {// }// 设置时间
bool TYCppStdLib::CTime::SetTime(int hour,int minute,int second)
{if(!SetHour(hour))return false;if(!SetMinute(minute))return false;return SetSecond(second);
}// bool TYCppStdLib::CTime::SetTime(char *times)
// {// }// 检查时间是否合法
bool TYCppStdLib::CDateAndTime::TimeIsValid(int hour,int minute,int second)
{if(hour<0 || hour>23)return false;if(minute<0 || minute>59)return false;if(second<0 || second>59)return false;return true;
}
转载于:https://my.oschina.net/u/186539/blog/55962
C++每日练笔之时间类(基类)相关推荐
- C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...
一.构造方法 当创建一个类时, 系统会自动创建一个默认的无参构造方法, 这个方法和类同名, 在创建对象的时候自动调用. 默认的构造方法里面什么也没有, 重写之后就可以在创建对象的时候同时搞点事情了. ...
- C# 子类实例化基类 基类使用不了子类的方法_老话题:6个方法,检验你有没有正确使用设计模式...
方法一:设计模式是为了消除继承 大部分设计模式,是让你在在面向对象的基础上尽量消除继承的手段.所以,如果你用了一些设计模式,减少了继承,那你八成用对了.如果你用了一大堆设计模式,然而继承却越来越频繁, ...
- C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记11--接口/泛型
一.接口 1.1简介: 接口是一种特殊的引用类型, 和类很相似. 它定义了属性, 方法, 事件, 这些都作为接口的成员/ 接口中只包含成员的声明, 成员的定义是派生类的责任(谁继承谁实现). 接口在某 ...
- C# 子类实例化基类 基类使用不了子类的方法_C#高级编程面试考题
一.简答题 1.简述C#中的所有访问修饰符及访问权限 private(私有的) 给类,及所有类成员使用 所有类成员的默认访问修饰符 可访问范围 当前类自身 public(公开的) 给类,及所有类成员使 ...
- 继承类 基类的赋值_Chapter10:继承与派生(四)
之前的文章把继承和派生的基本概念和内部原理都大致理清了.但是类可以视作是一种特殊的数据类型--它也具有转换的功能,称为转型,这一节展开讨论它,以及如何通过指针跨越权限访问不同成员的技巧. 1.类的转型 ...
- C# 子类实例化基类 基类使用不了子类的方法_C#中的类、方法和属性
这节讲C#中的类,方法,属性.这是面向对象编程中,我们最直接打交道的三个结构. 类: 类(class)是面向对象中最基本的单元,它是一种抽象,对现实世界中事物的抽象,在C#中使用class关键字 ...
- C++学习笔记-----存在多态调用时,为基类定义虚析构函数
在C++的继承体系中,构造函数和析构函数的执行顺序是完全相反的. 对于构造函数:从继承体系的最顶层的基类开始,一步步往下构建.即构造顺序是 基类--->>派生类. 对于析构函数:从继承体 ...
- 在保护继承中基类的共有成员_C++学习大纲:继承方式的调整
C++ 继承方式的调整 在任何继承方式中,除了基类的private成员外,都可以在派生类中分别调整其访问控制. 调整格式 [public: | protected: | private: ] :: ; ...
- 关于Java抽象类,接口与实现接口及派生类继承基类
1. 抽象类 抽象类就是有一个或多个方法只被声明而未被实现. 抽象方法的声明以分号结束,并且用关键字abstract来说明它以标识它为抽象方法. 格式: public abstract class 类 ...
最新文章
- Vbox在Linux 5上安装Oracle 11gR2 RAC
- 掀起网络狂欢效应的六条金科玉律
- angular Ng-Zrro树形控件 异步加载
- Spring AOP实现原理解析
- camunda流程引擎如此简单「四」
- 被动模式下FTP不能建立数据会话问题
- 使用FormData对象
- LeetCode--35. 搜索插入位置(遍历,二分法)
- linux服务器配置python环境_服务器python环境配置福利,CentOS ,Linux 一键下载python3和环境配置...
- VUE ---- Windows7环境下安装
- H264/H265码流的编码码率设置
- 【转载】GGB0/OB28/OKC7/GGB1/OBBH/OKC9 FICO增强
- 视频特效如何制作?快把这些方法收好
- Activiti7.0实战学习(九):查询历史表中的数据
- halcon calculate_lines_gauss_parameters算子详解
- Python-Opencv 形态学+算子实现轮廓提取
- js - 在指定位置添加指定字符
- 无障碍设计标准中的对比度
- 开关电源学习——基本元件之电容
- 3d打印光固化好还是热固化好_光固化3D打印机定制