输入不会传递给函数

时间:2018-03-25 17:05:18

标签: c++ function date

我尝试编写一个代码来检查文本文件中日期和日期的有效性。因此,在使用文本文件作为输入之前,我尝试将没有文本文件的代码编写为输入,以查看是否有效。这是我的代码。

#include<iostream>
using namespace std;



bool isLeap(int year)
{
    const int MAX_VALID_YR = 2100;
    const int MIN_VALID_YR = 1800;
  return (((year%4==0) && (year%100!=0)) || (year%400==0));
}


bool isValidDate(int d, int m, int y)
{
    const int MAX_VALID_YR = 2100;
    const int MIN_VALID_YR = 1800;
    if (y > MAX_VALID_YR || y < MIN_VALID_YR)
      return false;
    if (m < 1 || m > 12)
      return false;
    if (d < 1 || d > 31)
      return false;

    if (m == 2)
    {
        if (isLeap(y))
           return (d <= 29);
        else
           return (d <= 28);
    }

    if (m==4 || m==6 || m==9 || m==11)
        return (d <= 30);

    return true;
}

bool isLeap(int);
bool isValidDate(int,int,int);

int main()
{
    int date, dd, mm, yy, years;
    const int MAX_VALID_YR = 2100;
    const int MIN_VALID_YR = 1800;
    yy=years;
    cout<<"Welcome, You Can Use This To Check Valid Date"<<endl;
    cout<<"Insert Date"<<endl;
    cin>>dd;
    cout<<"Insert Month"<<endl;
    cin>>mm;
    cout<<"Insert Year"<<endl;
    cin>>yy;
    isLeap(years);
    isValidDate(dd, mm, yy);
    cout<<"This Is the Result:\t"<<dd<<mm<<yy<<endl;
} 

我想获得显示日期有效的输出,但最后只显示日期。我写的功能不好或我输出的方式是错误的吗?

By the way, is that possible to check an input dates and days on the current time?

我知道这不是一个好的代码,我还在学习。希望能进一步得到一些提示和建议。

4 个答案:

答案 0 :(得分:1)

函数isValidDate(dd,mm,yy)返回正确的值,但您不打印其结果。您只是打印从用户那里获得的任何输入。在你的代码中使用它..

if (isValidDate(dd, mm, yy))
{
    cout<<dd<<mm<<yy<<" is valid Date"<<endl;
}
else
{
    cout<<dd<<mm<<yy<<" is invalid Date"<<endl;
}

答案 1 :(得分:0)

在你的主要功能中,你可以有一个if条件。

if (isValidDate(dd, mm, yy)){
    cout<<"Valid Date";
}
else
    cout<<"Invalid Date";

将其替换为主函数中的最后两行。

答案 2 :(得分:0)

你的函数返回true或false但是你没有写一个方法来做那些返回true / false时发生的事情。您只调用main方法中的函数。如果条件和cout用于布尔结果,请使用。祝你好运:)

答案 3 :(得分:0)

更改此

cout<<"This Is the Result:\t"<<dd<<mm<<yy<<endl;

到此

cout<<"This Is the Result:\t"<<isValidDate(dd, mm, yy) ? "Input is Valid":"Input is Invalid"<<endl;