计算星期

来源:互联网 发布:宽带流量赚钱软件 编辑:程序博客网 时间:2024/04/29 17:56

题目内容:

给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。


输入格式:

年 月 日


输出格式:

0~6。
    星期日用 0 表示,星期一用 1 表示,星期二用 2 表示......星期六用 6 表示。

假设年份大于1900。先想一想:我们现在只会使用 if 语句,该如何建立数学模型?


输入样例:

2013 3 11

输出样例:

1


输入样例:

2013 13 15

输出样例:

month is error.



输入样例:

2013 3 32

输出样例:

day is error.
蔡勒(Zeller)公式,即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 
#include<stdio.h>int main(){   int year,month,day;   scanf("%d %d %d",&year,&month,&day);   if(12<month||month<1)   {        printf("month is error.\n");        exit(0);   }   if(31<day || day<1)   {        printf("day is error.\n");        exit(0);   }   int y,c,d;   y=year%100;   c=year/100;    d=y+y/4+c/4-2*c+26*(month+1)/10+day-1;    int w=d%7;    switch(w)    {        case 0:printf("0");break;        case 1:printf("1");break;        case 2:printf("2");break;        case 3:printf("3");break;        case 4:printf("4");break;        case 5:printf("5");break;        case 6:printf("6");break;    }    return 0;}


0 0
原创粉丝点击