我尝试编写一个代码来检查文本文件中日期和日期的有效性。因此,在使用文本文件作为输入之前,我尝试将没有文本文件的代码编写为输入,以查看是否有效。这是我的代码。
#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?
我知道这不是一个好的代码,我还在学习。希望能进一步得到一些提示和建议。
答案 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;