C++练习:定义使用类
题目要求
定义一个时间类Time,能提供和设置由时、分、秒组成的时间,
按指定格式输出,并提供增加一秒的函数。
并编写应用程序,要求定义时间对象,设置时间为:8点30分0秒,输出其时间,格式为:08:30:00。
重新设置时间为23点59分59秒,并增加秒数,输出增加后的结果。
PS:我用的是visual studio 2019,所以不用加一些头文件
代码部分
头文件
#pragma once
#ifndef PERSON_H
#define PERSON_H
class Time
{
public:
int year;
int month;
int day;
int hour;
int minute;
int second;
void set(int x, int y, int z, int o, int p, int q);
void output();
bool flag();
void add();
};
#endif
函数
#include<iostream>
#include <iomanip>
#include "Time.h"
using namespace std;
void Time:: set(int x, int y, int z, int o, int p, int q)
{
year = x;
month = y;
day = z;
hour = o;
minute = p;
second = q;
}
void Time:: output()
{
cout << setfill('0') << setw(2) << year << "/"
<< setfill('0') << setw(2) << month << "/"
<< setfill('0') << setw(2) << day << "\t"
<< setfill('0') << setw(2) << hour << ":"
<< setfill('0') << setw(2) << minute << ":"
<< setfill('0') << setw(2) << second << endl;
}
bool Time:: flag()
{
return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}
void Time:: add()
{
int day_len[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if (flag())
{
day_len[1] = 29;
}
second++;
if (second > 59)
{
second = 0;
minute++;
if (minute > 59)
{
minute = 0;
hour++;
if (hour > 23)
{
hour = 0;
day++;
if (day > day_len[month - 1])
{
day = 1;
month++;
if (month > 12)
{
month = 1;
year++;
}
}
}
}
}
}
主函数
#include<iostream>
#include "Time.h"
using namespace std;
int main()
{
Time time;
time.set(2021, 5, 12, 16, 39, 46);
time.output();
time.set(2021,2,28,23, 59, 59);
time.add();//加一秒
time.output();
}
运行结果