设计一个时间类CTime,用于表示时间值(小时、分钟、秒)
要求可以初始化时间值,显示当前时间,并具有将秒数加1的功能。在主函数中声明CTime的对象,并设置其初始时间,然后测试秒数加1的功能(通过一个循环语句将初始时间依次加1秒...
要求可以初始化时间值,显示当前时间,并具有将秒数加1的功能。在主函数中声明CTime的对象,并设置其初始时间,然后测试秒数加1的功能(通过一个循环语句将初始时间依次加1秒,并在屏幕输出当前时间)。
展开
展开全部
这是一个简单时间操作类。
#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。
希望对你有帮助
#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。
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主你好
具体代码如下:(使用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;
}
希望能帮助你哈
具体代码如下:(使用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;
}
希望能帮助你哈
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询