1 在我的命名空间TYCppStdLib中对于日期和时间的操作非常丰富。
2 共有六个类和一组全局函数。
3 六个类分别是:
4 CDate
5 CTime
6 CDateAndTime
7 CMyDate
8 CMyTime
9 CMyDateAndTime
10
11 前三个类不带类的成员变量,直接操作用户给定的数据。
12 前三个类的成员函数与全局函数一一对应。
13 后三个类带类的成员变量,成员函数操作类的成员变量。
14
15 现在发布的是CTime类(基类,完成基本功能,待更新)。
16
17 源代码如下:
1 /*- ==========================================================
2 * 文件名 :CTime.h
3 * 开发人员:袁培荣
4 * 当前版本:1.0.0.2595
5 * 创建时间:2012-04-23
6 * 修改时间:2012-05-01
7 * 功能说明:时间类(基类)
8 * 版权说明:版权所有 袁培荣 YuanPeirong
9 * 编译环境:Windows 7(x64) SP1 简体中文专业版
10 * 编译器: Visual Studio 2010 SP1(中文旗舰版)
11 MinGW 2011118
12 Visual C++ 6.0 SP6(中文企业版)
13 - ==========================================================*/
14
15 #ifndef CTime_H_TYCppStdLib
16 #define CTime_H_TYCppStdLib
17
18 #ifdef CTime_DLL_API
19 #else
20 #define CTime_DLL_API _declspec(dllimport)
21 #endif
22
23 #include <string>
24 #include "Windows.h"
25
26 using namespace std;
27
28 namespace TYCppStdLib
29 {
30 class CTime_DLL_API CTime
31 {
32 public:
33 CTime();
34 virtual ~CTime();
35
36 virtual int GetHour(); // 获取时
37 virtual int GetMinute(); // 获取分
38 virtual int GetSecond(); // 获取秒
39
40 virtual bool SetHour(int hour); // 设置时
41 virtual bool SetMinute(int minute); // 设置分
42 virtual bool SetSecond(int second); // 设置秒
43
44 // 获取时间
45 virtual void GetTime(int &hour,int &minute,int &second);
46 //virtual string GetTime(const string strDivide="-");
47 //virtual void GetTime(char *times,char *divide=":");
48
49 // 设置时间
50 virtual bool SetTime(int hour,int minute,int second);
51 //virtual bool SetTime(char *times);
52
53 // 检查时间是否合法
54 virtual bool TimeIsValid(int hour,int minute,int second);
55 };
56 }
57
58 #endif
1 /*- ==========================================================
2 * 文件名 :CTime.cpp
3 * 开发人员:袁培荣
4 * 当前版本:1.0.0.2595
5 * 创建时间:2012-04-23
6 * 修改时间:2012-05-01
7 * 功能说明:时间类(基类)
8 * 版权说明:版权所有 袁培荣 YuanPeirong
9 * 编译环境:Windows 7(x64) SP1 简体中文专业版
10 * 编译器: Visual Studio 2010 SP1(中文旗舰版)
11 MinGW 2011118
12 Visual C++ 6.0 SP6(中文企业版)
13 - ==========================================================*/
14
15 #ifndef CTime_DLL_ForAPI
16 #define CTime_DLL_ForAPI
17
18 #define CTime_DLL_API _declspec(dllexport)
19
20 #endif
21
22 #include "http://www.cnblogs.com/Include/DateAndTime/CTime.h"
23
24 /* typedef struct _SYSTEMTIME { // st
25 WORD wYear;
26 WORD wMonth;
27 WORD wDayOfWeek;
28 WORD wDay;
29 WORD wHour;
30 WORD wMinute;
31 WORD wSecond;
32 WORD wMilliseconds;
33 } SYSTEMTIME; */
34
35 //构造函数
36 TYCppStdLib::CDate::CTime()
37 {
38 //空函数
39 }
40
41 //析构函数
42 TYCppStdLib::CDate::~CTime()
43 {
44 //空函数
45 }
46
47 // 获取时
48 int TYCppStdLib::CTime::GetHour()
49 {
50 SYSTEMTIME st;
51 GetLocalTime(&st);
52 return st.wHour;
53 }
54
55 // 获取分
56 int TYCppStdLib::CTime::GetMinute()
57 {
58 SYSTEMTIME st;
59 GetLocalTime(&st);
60 return st.wMinute;
61 }
62
63 // 获取秒
64 int TYCppStdLib::CTime::GetSecond()
65 {
66 SYSTEMTIME st;
67 GetLocalTime(&st);
68 return st.wSecond;
69 }
70
71 // 设置时
72 bool TYCppStdLib::CTime::SetHour(int hour)
73 {
74 SYSTEMTIME st;
75 if(hour<0 || hour>23)
76 return false;
77 GetLocalTime(&st);
78 st.wHour=hour;
79 if(SetLocalTime(&st))
80 return true;
81 return false;
82 }
83
84 // 设置分
85 bool TYCppStdLib::CTime::SetMinute(int minute)
86 {
87 SYSTEMTIME st;
88 if(minute<0 || minute>59)
89 return false;
90 GetLocalTime(&st);
91 st.wMinute=minute;
92 if(SetLocalTime(&st))
93 return true;
94 return false;
95 }
96
97 // 设置秒
98 bool TYCppStdLib::CTime::SetSecond(int second)
99 {
100 SYSTEMTIME st;
101 if(second<0 || second>59)
102 return false;
103 GetLocalTime(&st);
104 st.wSecond=second;
105 if(SetLocalTime(&st))
106 return true;
107 return false;
108 }
109
110 // 获取时间
111 void TYCppStdLib::CTime::GetTime(int &hour,int &minute,int &second)
112 {
113 hour=GetHour();
114 minute=GetMinute();
115 second=GetSecond();
116 }
117
118 // void TYCppStdLib::CTime::GetTime(char *times,char *divide=":")
119 // {
120
121 // }
122
123 // 设置时间
124 bool TYCppStdLib::CTime::SetTime(int hour,int minute,int second)
125 {
126 if(!SetHour(hour))
127 return false;
128 if(!SetMinute(minute))
129 return false;
130 return SetSecond(second);
131 }
132
133 // bool TYCppStdLib::CTime::SetTime(char *times)
134 // {
135
136 // }
137
138 // 检查时间是否合法
139 bool TYCppStdLib::CDateAndTime::TimeIsValid(int hour,int minute,int second)
140 {
141 if(hour<0 || hour>23)
142 return false;
143 if(minute<0 || minute>59)
144 return false;
145 if(second<0 || second>59)
146 return false;
147 return true;
148 }