从指定日期开始显示的第二天的代码

时间:2016-02-23 08:30:07

标签: c++ date

我一直在尝试编写一些代码,这些代码会在第二天从用户输入的日期开始。这是我的代码。

#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功能的调节..任何帮助将不胜感激!谢谢!〜

1 个答案:

答案 0 :(得分:2)

if ((iMonth == 12) && (iD == 31));
//                              ^^^

行尾的分号使if语句的主体为空,并且始终执行以下块。