为什么这个万年历的程序不能显示某年某月有的天数
来源:互联网 发布:淘宝投诉假冒伪劣 编辑:程序博客网 时间:2024/05/01 02:43
这个程序为什么显示不了某年某月有的天数,,选择2不显示,请大家帮忙。
#include<iostream.h>#include<stdlib.h>#include<stdio.h>#include<iomanip.h>struct mon{ int maxdata; int data;};int SeekWeekDay(void);int WeekDay(int year,int month,int day);int HowManyDays(void);int MonthDays(int year,int month);int PrintWeek(int weekday);int PrintMonth(int month);int PrintData(void);int main(){char choice;while(1){ puts("*******************************"); puts("*请输入您的选择: *"); puts("*输入1求某个日期对应的星期 *"); puts("*输入2求某年某月有的天数 *"); puts("*输入3输出某年的日历 *"); puts("*输入Q结束程序 *"); puts("*******************************"); cin>>choice; fflush(stdin); switch(choice) { case '1':SeekWeekDay(); break; case '2':int HowManyDays(int) ; break; case '3':PrintData(); break; case 'Q':return 0; default: puts("输入错误,请重新输入");break; } cout<<endl<<endl;}system("pause");return 0;}int HowWanyDays(int){ int year,month,days; cout<<"请输入年号和月份:"; cin>>year>>month;fflush(stdin); cout<<"你的输入为"<<year<<"年"<<month<<"月,"; days=MonthDays(year,month); cout<<year<<"年"<<month<<"月有"<<days<<"天\n"; return 0;}SeekWeekDay(){ int year,month,day,weekday; cout<<"请输入年 月 日:"; cin>>year>>month>>day; fflush(stdin); cout<<"你的输入为"<<year<<"年"<<month<<"月"<<day<<"日\n"; weekday=WeekDay(year,month,day); cout<<"这天是" ; //int PrintWeek(int weekday); PrintWeek(weekday); return 0;} PrintWeek(int weekday){ switch(weekday) { case 0:cout<<"周日";break; case 1:cout<<"周一";break; case 2:cout<<"周二";break; case 3:cout<<"周三";break; case 4:cout<<"周四";break; case 5:cout<<"周五";break; case 6:cout<<"周六";break; } return 0;}PrintMonth(int month){ switch(month) { case 1:cout<<"一 月"; break; case 2:cout<<"二 月"; break; case 3:cout<<"三 月"; break; case 4:cout<<"四 月"; break; case 5:cout<<"五 月"; break; case 6:cout<<"六 月"; break; case 7:cout<<"七 月"; break; case 8:cout<<"八 月"; break; case 9:cout<<"九 月"; break; case 10:cout<<"十 月";break; case 11:cout<<"十一 月";break; case 12:cout<<"十二 月";break; } return 0;}int WeekDay(int year,int month,int day){ int i; int run=0,ping=0; long sum; for(i=1;i<year;i++) { if(i%4==0 && i%100!=0||i%400==0) run++; else ping++; } sum=366*run+365*ping; for(i=1;i<month;i++) sum+=MonthDays(year,i); sum+=day; return(int)sum&7;}int MonthDays(int year,int month){ switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if(year%4==0 && year&100!=0|| year%400==0) return 29; else return 28; default:cout<<"这是一个错误的月份!";system("pause"); return 0; }}int PrintData(void){ struct mon month[13]; int i,j,k; int year,mon,week; cout<<"请输入年号" ;cin>>year;for(i=1;i<13;i++){ month[i].data=1; month[i].maxdata=MonthDays(year,i);}for(i=0;i<6;i++){ for(j=1;j<=2;j++) { mon=2*i+j; cout<<setw(20); PrintMonth(mon); cout<<setw(20); if(j==1) cout<<'\t'; }cout<<endl;cout<<endl;for(j=1;j<=2;j++){ for(k=0;k<7;k++) {PrintWeek(k); }cout<<setw(3)<<' ';}cout<<endl;for(j=1;j<=2;j++){ mon=2*i+j;week=WeekDay(year,mon,1);if( j==1)cout<<setw(week*5+5)<<month[mon].data++;elsecout<<setw(week*4.8)<<month[mon].data++;week++;while(week<7){cout<<setw(5)<<month[mon].data++;week++;}if(j==1)cout<<setw(11)<<' ';}cout<<endl;cout<<endl;while(month[2*i+1].data<=month[2*i+1].maxdata||month[2*i+2].data<=month[2*i+2].maxdata){for(j=1;j<=2;j++) {mon=2*i+j;for(k=0;k<7;k++){ if(month[mon].data<=month[mon].maxdata) cout<<setw(5)<<month[mon].data++; else cout<<" "; }if(j==1)cout<<'\t';}cout<<endl;cout<<endl; } cout<<endl;}return 0;}
0 0
- 为什么这个万年历的程序不能显示某年某月有的天数
- 求某年某月的天数
- 获取某年某月的天数
- 求某年某月的天数
- 某年某月的天数
- 某年某月的天数
- java某年某月的天数
- 请问这个程序为什么不能显示最后一行数据
- SQL 查找某年某月的天数
- C#获取某年某月的天数
- 1073 计算某年某月的天数
- c语言 某年某月的天数
- C++求某年某月的天数
- Java-判断某年某月的天数
- SDUT 1160 某年某月的天数
- 为什么有的vi不能以十六进制显示数据
- 怎样得到某年某月的最大天数
- 如何获取某年某月的最大天数
- IOS网络笔记--地图内容1
- 【日常学习】【模拟,树形DP-非递归!和拆点最短路】10.26.2015校内测试总结
- elasticsearch如何获得查询的全部结果
- Linux性能评测工具之一:gprof篇
- 移植ssh到arm
- 为什么这个万年历的程序不能显示某年某月有的天数
- Memcached缓存服务器
- linux命令行模式下配置wifi热点
- 提高java编程性能的好习惯
- QT之QFileSystemWatcher使用
- bat for循环
- POJ3181 完全背包+高精度数模板
- URAL 1309 Dispute (数学+推导)
- php错误记录