C++ c++;如果检查不正确';我不能自行工作

C++ c++;如果检查不正确';我不能自行工作,c++,if-statement,C++,If Statement,我想做一个计数器来计算两个日期之间的天数,但是支票不能像我想的那样工作。问题是它通过了我给它的任何值,例如它认为一个月有41天。谢谢你的帮助 cout << "Please give the two dates!\n"; cin >> year1 >> m1 >> d1 >> year2 >> m2 >> d2; if (1 <= year1 <= 9999 &&

我想做一个计数器来计算两个日期之间的天数,但是支票不能像我想的那样工作。问题是它通过了我给它的任何值,例如它认为一个月有41天。谢谢你的帮助

cout << "Please give the two dates!\n";
    cin >> year1 >> m1 >> d1 >> year2 >> m2 >> d2;

    if (1 <= year1 <= 9999 &&
        1 <= year2 <= 9999 &&
        1 <= m1 <= 12 &&
        1 <= m2 <= 12 &&
        1 <= d1 <= 31 &&
        1 <= d2 <= 31 )
    {
        cout << "ok";
    }
    else
    {
        cout << "notOK";
    }
cout>year1>>m1>>d1>>year2>>m2>>d2;
如果(1考虑

1<=year1<=9999
1试试这个:

cout << "Please give the two dates!\n";
    cin >> year1 >> m1 >> d1 >> year2 >> m2 >> d2;
    if ((1 <= year1) && (year1 <= 9999) &&
        ((1 <= year2) && (year2 <= 9999)) &&
        ((1 <= m1) && (m1 <= 12)) &&
        ((1 <= m2) && (m2 <= 12)) &&
        ((1 <= d1) && (d1 <= 31)) &&
        ((1 <= d2) && (d2 <= 31)))
    {
        cout << "ok\n";
    }
    else
    {
        cout << "notOK";
    }
}
cout>year1>>m1>>d1>>year2>>m2>>d2;

如果(1)请考虑购买初学者。日期检查的努力是不有趣的。我认为你不能很容易地计算从一个日期到另一个日期,所以它也将是不有用的。你知道跳跃的日子?和4世纪修正?日历转换是不平凡的。imHo,最方便的方法是使用STD::时间()(在成功时返回编码为std::time\t对象的当前日历时间),因为每天(甚至闰日)都是24小时,所以不必麻烦转换为localtime()C++的选择会涉及到计时,这是很重要的,所以一定要尝试一下。@ KyZoOnKooYes是的,我的意思是在逻辑上,它肯定是错误的。但是代码当然是很好的。
cout << "Please give the two dates!\n";
    cin >> year1 >> m1 >> d1 >> year2 >> m2 >> d2;
    if ((1 <= year1) && (year1 <= 9999) &&
        ((1 <= year2) && (year2 <= 9999)) &&
        ((1 <= m1) && (m1 <= 12)) &&
        ((1 <= m2) && (m2 <= 12)) &&
        ((1 <= d1) && (d1 <= 31)) &&
        ((1 <= d2) && (d2 <= 31)))
    {
        cout << "ok\n";
    }
    else
    {
        cout << "notOK";
    }
}