设计一个时间类CTime,用于表示时间值(小时、分钟、秒)

要求可以初始化时间值,显示当前时间,并具有将秒数加1的功能。在主函数中声明CTime的对象,并设置其初始时间,然后测试秒数加1的功能(通过一个循环语句将初始时间依次加1秒... 要求可以初始化时间值,显示当前时间,并具有将秒数加1的功能。在主函数中声明CTime的对象,并设置其初始时间,然后测试秒数加1的功能(通过一个循环语句将初始时间依次加1秒,并在屏幕输出当前时间)。 展开
 我来答
xpston008
2013-03-30 · TA获得超过365个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:344万
展开全部
这是一个简单时间操作类。
#include <iostream>
#include <time.h>
using namespace std;
class CTime
{
private:
int Tm_Hour;
int Tm_Minute;
int Tm_Second;
time_t T_Val;
public:
CTime();
CTime(const int& h,const int& m,const int& s);
inline void LocalTime(tm *t,time_t &tval)
{
tm *tm = localtime(&tval);
if(tm != NULL)
{
*t = *tm;
}
}
inline void LocalTime(tm *t)
{
tm *tm = localtime(&T_Val);
if(tm != NULL)
{
*t = *tm;
}
}
inline void set(tm *t)
{
//可以增加修改月份..
t->tm_hour = Tm_Hour;
t->tm_min = Tm_Minute;
t->tm_sec = Tm_Second;
}
void set(const int& h,const int& m,const int& s);
inline void Maketime(tm * t)
{
T_Val = mktime(t);
}
inline void AddSecond(const int & ns=1)
{
T_Val += ns;
}
const char * Format(const char* format,char *p,int len);
};
CTime::CTime()
{
T_Val = time(NULL);
}
CTime::CTime(const int& h,const int& m,const int& s):Tm_Hour(h),Tm_Minute(m),Tm_Second(s)
{
time_t t = time(NULL);
tm atm;
memset(&atm,0,sizeof(atm));
LocalTime(&atm,t);
set(&atm);
Maketime(&atm);
}
void CTime::set(const int& h,const int& m,const int& s)
{
Tm_Hour = h;
Tm_Minute = m;
Tm_Second = s;
tm atm;
memset(&atm,0,sizeof(atm));
set(&atm);
Maketime(&atm);
}

const char * CTime::Format(const char* format,char *p,int len)
{
tm atm;
memset(&atm,0,sizeof(atm));
if(T_Val > 0)
{
LocalTime(&atm);
strftime(p,len,format,&atm);
return p;
}

return NULL;
}
int main ()
{
CTime t;
char buf[32]={0};
t.Format("%H:%M:%S",buf,32);
cout << buf << endl;
t.AddSecond(1);
t.Format("%H:%M:%S",buf,32);
cout << buf << endl;
CTime t1(22,21,30);
t1.Format("%H:%M:%S",buf,32);
cout << buf << endl;
t1.AddSecond(50);
t1.Format("%H:%M:%S",buf,32);
cout << buf << endl;
}

通过c时间类型实现 函数详细使用请见baidu。

希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
未来需努力点缀
推荐于2016-02-21 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:516万
展开全部
楼主你好

具体代码如下:(使用c++编写的)

#include<iostream>using namespace std;
class CTime
{
private:
int hour,minute,second;
public:
CTime(){}
CTime(int h,int m,int s)
{
hour = h;
minute = m;
second = s;
}

void SetHour(int h){hour = h;}//设置小时
void SetMinute(int m){minute = m;}//设置分
void SetSecond(int s){second = s;}//设置秒
void SetTime(int h,int m,int s)//设置时间
{
hour = h;
minute = m;
second = s;
}

void AddOneSecond()//加一秒
{
second++;

minute += second / 60;
second = second % 60;

hour += minute / 60; minute = minute % 60;
hour = hour % 24; }
void DisplayTime()//显示时间
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
};

int main()
{
CTime time(14,59,59);

cout<<"初试时间:"<<endl; time.DisplayTime();
time.AddOneSecond();
cout<<"\n加一秒:"<<endl;
time.DisplayTime();
return 0;
}

希望能帮助你哈
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式