在我的命名空间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 2011118
Visual 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 2011118
Visual 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;
}