Day of Week

来源:互联网 发布:前端开发的优化问题 编辑:程序博客网 时间:2024/06/05 09:11

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:6858

解决:2421

题目描述:

We now use the Gregorian style of dating in Russia. The leap years are years with number divisible by 4 but not divisible by 100, or divisible by 400.
For example, years 2004, 2180 and 2400 are leap. Years 2004, 2181 and 2300 are not leap.
Your task is to write a program which will compute the day of week corresponding to a given date in the nearest past or in the future using today’s agreement about dating.

输入:

There is one single line contains the day number d, month name M and year number y(1000≤y≤3000). The month name is the corresponding English name starting from the capital letter.

输出:

Output a single line with the English name of the day of week corresponding to the date, starting from the capital letter. All other letters must be in lower case.

样例输入:
9 October 200114 October 2001
样例输出:
TuesdaySunday
提示:

Month and Week name in Input/Output:
January, February, March, April, May, June, July, August, September, October, November, December
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday


题目大意:就是给出两个日期,问是星期几。。。

注意几个问题:

1.输入输出的转换,这个要熟练,比较水的。。熟练就好了

2.让其中一个已知的周几作为已知条件,从而求下面的。。

3.关键是求两个时间的差几天。。然后%7就好了。。。

求两个时间差几天这个有固定的格式。。见下面的代码就好了


#include<cstdio>#include<algorithm>#include<cstdlib>#include<cstring>#define ISYEAP(x) x%100!=0&&x%4==0||x%400==0?1:0using namespace std; int dayofmonth[13][2]={0,0,31,31,28,29,31,31,30,30,31,31,30,30,31,31,31,31,30,30,31,31,30,30,31,31};struct Date{int year;int month;int day;//定义结构体函数,计算下一天的日期void next_Day(){day++;if(day>dayofmonth[month][ISYEAP(year)]){day=1;month++;if(month>12){month=1;year++;}}}}; //构造绝对值函数int abs(int x){return x>0?x:-x;} int buf[5005][13][31]={0};//用来保存当天和原点的日期 ,一开始放在main里面了,太大了,直接exit了,以后记住开大的数组放外面 int main(){int d,y,month_digit;//d,month_digit,y是要输出的天数 int y1,m1,d1;//作对比的天数 int cnt=1;int xiangchaday; struct Date tmp;tmp.day=1;tmp.month=1;tmp.year=1000; char m[15];char week[7][20]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};char month[12][20]={"January","February","March","April","May","June","July","August","September","October","November","December"};while(tmp.year>=1000&&tmp.year<=3000){buf[tmp.year][tmp.month][tmp.day]=cnt;tmp.next_Day();cnt++;}while(scanf("%d %s %d",&d,m,&y)!=EOF){xiangchaday=0;for(int i=0;i<12;i++){if(strcmp(m,month[i])==0){month_digit=i+1;break;}}if(buf[2001][10][9]<=buf[y][month_digit][d]){xiangchaday=buf[y][month_digit][d]-buf[2001][10][9];int xingqi=xiangchaday%7;printf("%s\n",week[(xingqi+2)%7]);}if(buf[2001][10][9]>buf[y][month_digit][d]){xiangchaday=buf[2001][10][9]-buf[y][month_digit][d];int xingqi=xiangchaday%7;printf("%s\n",week[(2+7-xingqi)%7]);}}return 0;}



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发票认证机卡了怎么办 交罚款的单子丢了怎么办 父亲行政拘留考警察政审不过怎么办 非法经营罪立案后不批刑拘怎么办 12分扣完了怎么办2018 驾驶证c1扣14分怎么办 车辆被扣12分怎么办 两个违章扣12分怎么办 车辆违章扣12分怎么办 一下扣了20分怎么办 违章扣了100多分怎么办 车子累计扣12分怎么办 起诉了对方不来怎么办 在监狱里被打伤了怎么办 初三要体检没去怎么办 羁押人在看守所没判刑怎么办? 在看守所关两年了还没有判刑怎么办 开麻将馆被拘留怎么办 拘留31天了我该怎么办 收到一封拘留信怎么办 存钱的收据掉了怎么办 行政拘留法制没有批的怎么办 别人起诉我我该怎么办 去钟落潭看守所送衣服要怎么办 长城宽带账号密码忘了怎么办 预约考试密码忘了怎么办 健康证预约号忘记怎么办啊 人在看守所七个月还没结果怎么办 起诉书和判决书丢了怎么办 进了看守所信用卡逾期怎么办 公安局审讯室监控影相被删除怎么办 关进看守所以前的工作怎么办 上海初中借读生学籍怎么办 外地货北京三环怎么办 谁买了小产权怎么办 狗在小区丢了怎么办 太原回迁房多余的房子怎么办 回迁房被开发商抵押怎么办 回迁房源多开发商扣房怎么办 蝈蝈叫晚上怕吵怎么办 蝈蝈总不停的叫怎么办