[英]how to solve this question when a day is set to the first day of the month and decremented, it should become the last day of the previous month?
這是我第一次嘗試這樣的問題。解決這個問題對我來說非常困難,因為由於某些原因,我在教授這個問題時無法上課。誰能幫助我如何使用遞減運算符作為我不知道在哪里以及如何添加此類運算符以獲得理想的輸出。 我已經遲到了兩天提交這個作業:(
#include <iostream>
using namespace std;
class Date{
private:
int day;
int month;
int year;
public:
Date()
{
day;
month;
year;
}
Date(int d, int m , int y)
{
day = d;
month = m;
year = y;
}
void displayDate() {
cout << "Day: " << day << " Month:" << month <<" Year:"<<year<<endl;
}
// overloaded prefix ++ operator
Date operator++ () {
++day;
++year;
++month;
if(day >= 31) {
day -= 31;
}
if (month>=12)
{
month -= 12;
}
return Date(day, month,year);
}
};
int main ()
{
int day;
int month;
int year;
string month_name[20] = {"January","February","March","April","May","June","July","August","September","October","November","December"};
do{
cout << "Enter a day: ";
cin >> day;
if (day > 31 || day < 1)
cout<<"This is invalid "<<endl;
}
while (day > 31 || day < 1);
do{
cout << "Enter a month: " ;
cin >> month;
if (month > 12 || month < 1)
cout<<"This is invalid "<<endl;
}
while (month > 12 || month < 1);
cout << "Enter a year: ";
cin >> year;
cout << month << "/" << day << "/" << year << endl;
cout << month_name[month-1]<< " " << day << ", " << year << endl;
cout << day << " " << month_name[month-1] << "," << year << endl;
Date D1(day,month,year);
++D1; // increment D1
D1.displayDate(); // display D1
++D1; // increment of D1 again
D1.displayDate(); // display D1
return 0;
}
您基本上可以使用增量運算符執行相同的操作,但可以向后執行。 用於遞減的 C++ 運算符是--variable
,因此代碼如下所示
Date operator--(){
--day;
--year;
--month;
if(day <= 0)
{
day += 31;
}
if (month<=0)
{
month += 12;
}
return Date(day, month,year);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.