24:打印月历
2018-06-17 23:08:12来源:未知 阅读 ()
24:打印月历
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定年月,打印当月的月历表。
- 输入
- 输入为一行两个整数,第一个整数是年份year(1900 ≤ year ≤ 2099),第二个整数是月份month(1 ≤ month ≤ 12),中间用单个空格隔开。
- 输出
- 输出为月历表。月历表第一行为星期表头,如下所示:
Sun Mon Tue Wed Thu Fri Sat
其余各行一次是当月各天的日期,从1日开始到31日(30日或28日)。
日期数字应于星期表头右对齐,即各位数与星期表头相应缩写的最后一个字母对齐。日期中间用空格分隔出空白。 - 样例输入
-
2006 5
- 样例输出
-
Sun Mon Tue Wed Thu Fri Sat 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
- 提示
- 闰年判断方法:能被4整除但不能被100整除,或者能被400整除。
1900年1月1日是周一。 -
1 #include<iostream> 2 using namespace std; 3 int bgyear,bgmonth,bgday; 4 int enyear,enmonth,enday; 5 int month[21]={0,31,28,31,30,31,30,31,31,30,31,30,31};//非闰年 6 int rmonth[21]={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年 7 int flag=1; 8 int tot=0; 9 int dow=1; 10 string week[8]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; 11 int main() 12 { 13 cin>>enyear>>enmonth; 14 bgyear=1900; 15 bgmonth=1; 16 bgday=1; 17 for(int i=1900;i<=enyear;i++)//寻找年数上的差异 18 { 19 if((i%4==0&&i%100!=0)||(i%400==0)) 20 { 21 for(int j=1;j<=12;j++) 22 { 23 for(int k=1;k<=rmonth[j];k++) 24 { 25 if(i==enyear&&j==enmonth) 26 { 27 int bj=0; 28 cout<<"Sun Mon Tue Wed Thu Fri Sat"<<endl; 29 for(int i=1;i<=dow;i++) 30 { 31 if(dow==7)break; 32 bj++; 33 for(int i=1;i<=3;i++) 34 cout<<" "; 35 cout<<" "; 36 }//确定第一个数的位置 37 for(int k=1;k<=rmonth[j];k++) 38 { 39 if(k<10) 40 { 41 if(bj!=6&&k!=rmonth[j]) 42 cout<<" "<<k<<" "; 43 else 44 { 45 cout<<" "<<k; 46 } 47 bj++; 48 if(bj==7) 49 { 50 cout<<endl; 51 bj=0; 52 } 53 } 54 else 55 { 56 if(bj!=6&&k!=rmonth[j]) 57 cout<<" "<<k<<" "; 58 else 59 { 60 cout<<" "<<k; 61 } 62 if(k==rmonth[j])return 0; 63 bj++; 64 if(bj==7) 65 { 66 cout<<endl; 67 bj=0; 68 } 69 } 70 } 71 return 0; 72 }//边界条件 73 dow++; 74 if(dow==8) 75 dow=1; 76 77 } 78 79 } 80 }//闰年 81 else 82 { 83 for(int j=1;j<=12;j++) 84 { 85 for(int k=1;k<=month[j];k++) 86 { 87 if(i==enyear&&j==enmonth) 88 { 89 int bj=0; 90 cout<<"Sun Mon Tue Wed Thu Fri Sat"<<endl; 91 for(int i=0;i<=dow-1;i++) 92 { 93 if(dow==7)break; 94 if(bj==6)break; 95 bj++; 96 for(int i=1;i<=3;i++) 97 cout<<" "; 98 cout<<" "; 99 }//确定第一个数的位置 100 for(int k=1;k<=month[j];k++) 101 { 102 if(k<10) 103 { 104 if(bj!=6&&k!=month[j]) 105 cout<<" "<<k<<" "; 106 else 107 { 108 cout<<" "<<k; 109 } 110 bj++; 111 if(bj==7) 112 { 113 cout<<endl; 114 bj=0; 115 } 116 } 117 else 118 { 119 if(bj!=6&&k!=month[j]) 120 cout<<" "<<k<<" "; 121 else 122 { 123 cout<<" "<<k; 124 } 125 bj++; 126 if(bj==7) 127 { 128 cout<<endl; 129 bj=0; 130 } 131 if(k==month[j])return 0; 132 } 133 } 134 return 0; 135 }//边界条件 136 dow++; 137 if(dow==8) 138 dow=1; 139 } 140 141 142 143 144 } 145 146 } 147 } 148 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 用C++实现:FJ的字符串打印 2020-04-04
- 用C++实现:01字串打印 2020-03-15
- 用C++实现:杨辉三角形打印 2020-03-14
- 剑指offer59:按之字形顺序打印二叉树:[[1], [3,2], [4,5,6 2019-08-31
- 剑指offer27:按字典序打印出该字符串中字符的所有排列 2019-08-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash