提示是:实现一个函数,该函数读取一个包含日历日期文本描述的字符串,并打印出对应的星期几(周一至周日)。此函数的两种有效输入格式是:
月/日/年
示例:03/04/2014 输出:星期二
月 dd, yyyy
示例:2014 年 3 月 4 日输出:星期二
其中 dd 是数字日期,mm 是数字月份,yyyy 是年份,Month 是月份名称。所有日期和月份均使用两位数指定(即对于 March,使用 03 而不是 3)。在第二种有效格式中,Month 和 dd 之间以及 dd 和 yyyy 之间有一个空格。为了在此任务中获得全部功劳,您的程序应该打印出正确的星期几,以便以正确的格式输入任何内容。
到目前为止,我的代码能够给我输入的一年中的天数,但从那里我不知道该怎么做,所以它会给我一周中的一天,因为每年都从一个不同的工作日开始。
#include<stdio.h>
int main() {
int month, day, year, dm, dn, leap;
printf("enter the month:");
scanf("%d",&month);
printf("enter the day:");
scanf("%d",&day);
printf("enter the year:");
scanf("%d",&year);
if((year%100 == 0 && year%400 == 0) || (year%4==0)) {
if(month==1)
dm=0;
if(month==2)
dm=31;
if(month==3)
dm=60;
if(month==4)
dm=91;
if(month==5)
dm=121;
if(month==6)
dm=152;
if(month==7)
dm=182;
if(month==8)
dm=213;
if(month==9)
dm=244;
if(month==10)
dm=274;
if(month==11)
dm=305;
if(month==12)
dm=335;
}
else {
if(month==1)
dm=0;
if(month==2)
dm=31;
if(month==3)
dm=59;
if(month==4)
dm=90;
if(month==5)
dm=120;
if(month==6)
dm=151;
if(month==7)
dm=181;
if(month==8)
dm=212;
if(month==9)
dm=243;
if(month==10)
dm=273;
if(month==11)
dm=303;
if(month==12)
dm=334;
}
dn = dm+day;
printf("the day number is :%d",dn);
return 0;
}