SWUST OJ #78: 计算生日是星期几

题目描述

编写一个程序,只要输入年月日,就能回答那天是星期几。

能被4整除但不能被100整除的,或者能被400整除的是闰年。

输入一个日期,包括年、月、日。(一组测试数据)

输出这个日期是星期几。

#include<stdio.h>
int main()
{
    int n,y,r;
    while(scanf("%d %d %d",&n,&y,&r)!=EOF){
        int s=0;
        for(int i=1;i<n;i++){
            if((i%4==0&&i%100!=0)||(i%400==0)){
                s++;
            }
        }
        s+=(n-1)*365;
        if(y==1){
            s+=r;
        } else if(y==2){
            s+=31+r;
        } else if(y==3){
            s+=59+r;
        } else if(y==4){
            s+=90+r;
        } else if(y==5){
            s+=120+r;
        } else if(y==6){
            s+=151+r; 
        } else if(y==7){
            s+=181+r;
        } else if(y==8){
            s+=212+r;
        } else if(y==9){
            s+=243+r;
        } else if(y==10){
            s+=273+r;
        } else if(y==11){
            s+=304+r;
        } else if(y==12){
            s+=334+r;
        }
        int fact=s%7;
        switch(fact)
        {
            case 1:printf("Monday\n");break;
            case 2:printf("Tuesday\n");break;
            case 3:printf("Wednesday\n");break;
            case 4:printf("Thursday\n");break;
            case 5:printf("Friday\n");break;
            case 6:printf("Saturday\n");break;
            default:printf("Sunday\n");break;
        }
        
    }
    
    return 0;
 } 

 

比较简单的代码:可以凑合着看看,适合初学者。

上一篇:[游记]在SSL的集训生活


下一篇:(新版)SJTU-OJ-题目目录《程序设计思想与方法C++》- 顺序目录