我一直在尝试编写一些代码,这些代码会在第二天从用户输入的日期开始。这是我的代码。
#include <iostream>
#include <string>
using namespace std;
int daysMonth(int iMonth)
{
if (iMonth >= 1 && iMonth <= 12)
{
if (iMonth == 2)
return 28;
if (iMonth == 4 || iMonth == 6 || iMonth == 9 || iMonth == 11)
return 30;
return 31;
}
return 0;
}
void nextDay (int iD, int iMonth, int iY)
{
int daysM = daysMonth(iMonth);
if (iD != daysM)
{
iD = iD + 1;
iMonth = iMonth;
iY = iY;
}
if (iD == daysM)
{
iD = 1;
iMonth = iMonth + 1;
iY = iY;
}
if ((iMonth == 12) && (iD == 31));
{
iD = 1;
iMonth = 1;
iY = iY + 1;
}
cout << iD << "-" << iMonth << "-" << iY << endl;
}
int main ()
{
int iDay, iMonth, iYear;
cout << "Input day" << endl;
cin >> iDay;
cout << "Input Month" << endl;
cin >> iMonth;
cout << "Input Year" << endl;
cin >> iYear;
if (iDay >= 1 && iDay <= 31 && iMonth >= 1 && iMonth <= 12)
{
nextDay(iDay, iMonth, iYear);
}
else
cout << "Invalid date." << endl;
}
我的问题是每个日期都会增加另一年,无论日期如何。我想知道它是否具有nextDay功能的调节..任何帮助将不胜感激!谢谢!〜
答案 0 :(得分:2)
if ((iMonth == 12) && (iD == 31));
// ^^^
行尾的分号使if
语句的主体为空,并且始终执行以下块。