Day of Week

简介: Day of Week

题目描述:


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.


样例输入:


21 December 2012


5 January 2013


样例输出:


Friday


Saturday


程序代码:


#include<stdio.h>
#include<string.h>
int leap(int a)
{
  if(a%400==0||(a%4==0&&a%100!=0))
    return 1;
  return 0;
}
int main()
{
  char month[20];
  int day,year,k,d,i,sum;
  int q[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
        {0,31,29,31,30,31,30,31,31,30,31,30,31}};
  char a[20][20]={"0","January","February","March","April","May","June","July","August","September","October","November","December"};
  char b[20][20]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
  while(~scanf("%d%s%d",&day,month,&year))
  {
    sum=0;
    for(i=1;i<year;i++)
    {
      if(leap(i)==1)
        sum+=366;
      else
        sum+=365;
    }
    for(k=1;k<=12;k++)
    {
      if(strcmp(month,a[k])==0)
        break;
    }
    d=leap(year);
    for(i=1;i<k;i++)
      sum+=q[d][i];
    sum+=day;
    if(sum%7==0)
      printf("Sunday\n");
    else
      printf("%s\n",b[sum%7-1]);
  }
  return 0;
}

 


相关文章
|
5月前
|
机器人
week 0
这篇文章是关于机器人产业发展的介绍,以及一个以四足机器狗为平台的课程概览,课程内容包括机器人运动学、嵌入式开发和ROS等,旨在教授学生理解机器人系统的构成和工作原理,并进行项目实践。
31 0
week 0
|
5月前
[HNCTF 2022 WEEK2]getflag-入土为安的二十一天
[HNCTF 2022 WEEK2]getflag-入土为安的二十一天
53 0
|
5月前
[HGAME 2022 week1]easyasm-入土为安的第十八天
[HGAME 2022 week1]easyasm-入土为安的第十八天
54 0
|
OceanBase
to_date 和 sysdate
to_date 和 sysdate
891 0
|
Java 关系型数据库 MySQL
Date和Calendar
Date和Calendar
128 0
new Date()
new Date()
119 0
|
存储 JavaScript 前端开发
new Date(dateString)
new Date(dateString)
120 0
|
Go
New Year and Hurry
New Year and Hurry
114 0
New Year and Hurry
C#编程:用DateTime获取当前是星期几-5
C#编程:用DateTime获取当前是星期几-5
109 0
求当前日期是该年第几天
求当前日期是该年第几天
111 0