求C++大神解答,判断输入的日期是否合理。求代码。100分。

建立一个日期结构MyDate,包含年、月、日,输入一个日期,并判断输入的日期是否合理,既年、月、日是否合理,并输出结果。... 建立一个日期结构MyDate,包含年、月、日,输入一个日期,并判断输入的日期是否合理,既年、月、日是否合理,并输出结果。 展开
 我来答
百度网友6fe74e2
推荐于2018-04-12 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:269万
展开全部

#include "iostream"
using namespace std;
struct MyDate
{
 int year;
 int month;
 int day;
};
int checkDate(MyDate date)
{
 int flag=date.year %400==0 ||(date.year %4==0 && date.year %100!=0);
 if(date.year<=0 || date.month<=0 || date.day <=0)
  return 0;
 if(((date.month==1 || date.month==3 || date.month==5 ||date.month==7 ||date.month==8 ||date.month==10 ||date.month==12)&&date.day<=31)
    ||((date.month==4 ||date.month==6 ||date.month==9 ||date.month==11) && date.day<=30)
    ||(flag==1 && date.month==2 && date.day<=29)
    ||(flag==0 && date.month==2 && date.day<=28))
    return 1;
 else
  return 0;
}
int main()
{
 MyDate date={0};
 cout<<"请输入一个日期;";
 cin>>date.year>>date.month>>date.day;
 if(checkDate(date)==1)
  cout<<date.year<<"年"<<date.month<<"月"<<date.day<<"日"<<endl;
 else
  cout<<"输入日期不正确!"<<endl;

}

兔子和小强
2013-05-24 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1433万
展开全部

你确定是C++语言,而不是C?
确定用结构体而不用类?

#include <iostream>
using namespace std;
struct MyDate
{
int y, m, d;
};
bool judge(MyDate &date)
{
static int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y = date.y,
m = date.m,
d = date.d;
bool leap = (y%400==0 || y%100 && y%4==0);

return y > 0
&& (m > 0)&&(m <= 12)
&& (d > 0)&&(d <= (m==2 && leap) + mon[m]);
}
int main()
{
MyDate Date;
cin >> Date.y >> Date.m >> Date.d;
if(judge(Date))
cout << "Yes";
else
cout << "No";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式