码迷,mamicode.com
首页 > 编程语言 > 详细

日期计算----某月第x个星期x(CCF试题)//c++

时间:2017-09-10 19:42:18      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:日期   ==   星期几   1年   stream   namespace   ***   blog   logs   

//将问题拆解了一下,先求每个月是星期几,再进行接下来的运算,可以一步到位的

 1 #include<iostream>
 2 using namespace std;
 3 //**********节日计算*************
 4 //计算y1年的a月第一天是星期几
 5 int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 6 int day(int y1,int a){
 7 int y3=0;
 8 int c1=2;
 9 for(int year=1850;year<y1;year++){
10 int d=365;month[1]=28;
11 if((year%4==0&&year%100!=0)||year%400==0){
12 d=366;month[1]=29;
13 }
14 y3+=d;
15 }
16 for(int i=0;i<a-1;i++){
17 y3+=month[i];
18 }
19 c1+=y3%7;
20 if(c1==8){
21 c1=1;
22 }
23 return c1;
24 }
25 int main(){
26 //节日计算
27 int a,b,c,y1,y2,c2;
28 cin>>a>>b>>c>>y1>>y2;
29 for(int y=y1;y<=y2;y++){
30 month[1]=28;
31 if((y%4==0&&y%100!=0)||y%400==0){
32 month[1]=29;
33 }
34 if(c>day(y,a)){
35 c2=c-day(y,a)+7*(b-1)+1;
36 }
37 else{
38 c2=c-day(y,a)+7*b+1;
39 }
40 if(c2>month[a-1]){
41 cout<<"none"<<endl;
42 }
43 else{
44 cout<<y;
45 if(a<10){
46 cout<<"/0"<<a;
47 }
48 else{
49 cout<<"/"<<a;
50 }
51 if(c2<10){
52 cout<<"/0"<<c2<<endl;
53 }
54 else{
55 cout<<"/"<<c2<<endl;
56 }
57 }
58 }
59 
60 return 0;
61 
62 }

 

日期计算----某月第x个星期x(CCF试题)//c++

标签:日期   ==   星期几   1年   stream   namespace   ***   blog   logs   

原文地址:http://www.cnblogs.com/lixin-tan/p/7501865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!