编写一个函数判断输入的年月日是否合法。输入例如 2012 2 12形式
来源:互联网 发布:山东11选5遗漏数据查询 编辑:程序博客网 时间:2024/05/29 17:30
/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日期:2012 年 11 月 30 日 * 版 本 号:v1.0 * * 输入描述: * 问题描述: 编写一个函数判断输入的年月日是否合法。输入例如 2012 2 12形式* 程序输出:* 问题分析:略 * 算法设计:略 */#include<iostream>using namespace std;int main(){int days(int year,int month,int day); //函数声明int year,month,day;cout<<"请输入年月日:"<<endl;cin>>year>>month>>day; //输入年月日if(year>0) //合法条件之一 年份大于0{if(month>=1&&month<=12) //合法条件之二 月份在1到12之间{if(days(year,month,day)) //调用函数 判断 天 是否合法{cout<<"输入正确!"<<endl; //如果合法 输出输入正确}elsecout<<"输入错误!"<<endl; }elsecout<<"输入错误!"<<endl;}elsecout<<"输入错误!"<<endl;return 0;}//判断输入的天 是否合法!int days(int year,int month,int day){int leap(int year);if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) //1,3,5,7,8,10,12有31天。。{if(day>0&&day<=31){return true;}}else if(month==2||month==4||month==6||month==9||month==11) //4,6,9,11有30天{if(day>0&&day<=30){return true;}}else //2 若是闰年有29天 不是闰年有28天{if(leap(year)) //调用函数 判断是否是闰年{if(day>0&&day<=29) {return true;}}else{if(day>0&&day<=28) {return true;}}}}//判断是否为闰年!int leap(int year){if((year%4==0&&year%400==0)||(year&4==0&&year%100!=0)) //判断是否是闰年的条件{return true; }elsereturn false;}