C++自定义函数判断某年某月某日是这一年中第几天

时间:2021-05-02

本文实例讲述了C++自定义函数判断某年某月某日是这一年中第几天的方法。分享给大家供大家参考,具体如下:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 30 日 * 版 本 号:v1.0 * * 输入描述: * 问题描述:编写函数判断某年某月某日这一年中是第几天,在主函数中调用该函数。 * 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream> using namespace std; int main() { void f(int year,int month,int day); int year,month,day; cout<<"请输入年月日:"<<endl; f(year,month,day); cout<<endl; return 0; } //判断输入的年月日是这一年中的第几天! void f(int year,int month,int day) { int f1(int year,int month,int day); int leap(int year); int t=0,s=0,i; int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //定义数组 各月的天数 int b[12]={31,29,31,30,31,30,31,31,30,31,30,31}; while(1) { cin>>year>>month>>day; if(f1(year,month,day)) { if(leap(year)) { for(i=0;i<=month-2;i++) { t=t+b[i]; } s=t+day; } else { for(i=0;i<=month-2;i++) { t=t+a[i]; } s=t+day; } cout<<"这是这一年的第"<<s<<"天!"<<endl; break; } else cout<<"输入错误,请重新输入:"<<endl; } } //判断是否为闰年! int leap(int year) { if((year%4==0&&year%400==0)||(year&4==0&&year%100!=0)) { return true; } else return false; } //判断输入是否合法! int f1(int year,int month,int day) { int days(int year,int month,int day); if(year>0) { if(month>=1&&month<=12) { if(days(year,month,day)) { return true; } else return false; } else return false; } else return false; } //判断输入的天 是否合法! 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) { if(day>0&&day<=31) { return true; } else return false; } else if(month==2||month==4||month==6||month==9||month==11) { if(day>0&&day<=30) { return true; } else return false; } else { if(leap(year)) { if(day>0&&day<=29) { return true; } else return false; } else { if(day>0&&day<=28) { return true; } else return false; } } }

运行效果如下图所示:

希望本文所述对大家C++程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章