“今天是星期几?”万年历疑问
#include <stdio.h>int main()
{
int w,c,y,Y,m,M,d,ret;
printf("请输入查询日期:格式为yyyy-mm-dd ");
ret=scanf("%4d-%2d-%2d",&Y,&m,&d);
if (ret != 3)
printf("请输入正确的格式!");
else
if(m>= 3 && m<= 12)
{
c= Y/100;
y= Y%100;
w= (y+y/4+c/4-(2*c)+26*(m+1)/10+d-1)%7;
switch(w)
{
case 1: printf("%4d-%2d-%2d是星期一",Y,m,d);break;
case 2: printf("%4d-%2d-%2d是星期二",Y,m,d);break;
case 3: printf("%4d-%2d-%2d是星期三",Y,m,d);break;
case 4: printf("%4d-%2d-%2d是星期四",Y,m,d);break;
case 5: printf("%4d-%2d-%2d是星期五",Y,m,d);break;
case 6: printf("%4d-%2d-%2d是星期六",Y,m,d);break;
case 7: printf("%4d-%2d-%2d是星期日",Y,m,d);break;
}
}
else(m== 1|| m== 2);
{
M= m+12;
y= (Y-1)%100;
c= (Y/100);
w= (y+ y/4+ c/4-2*c+ 26*(M+ 1)/10+ d-1)%7;
switch(w)
{
case 1:printf("%4d-%2d-%2d是星期一",Y,m,d);break;
case 2:printf("%4d-%2d-%2d是星期二",Y,m,d);break;
case 3:printf("%4d-%2d-%2d是星期三",Y,m,d);break;
case 4:printf("%4d-%2d-%2d是星期四",Y,m,d);break;
case 5:printf("%4d-%2d-%2d是星期五",Y,m,d);break;
case 6:printf("%4d-%2d-%2d是星期六",Y,m,d);break;
case 7:printf("%4d-%2d-%2d是星期日",Y,m,d);break;
}
}
return 0;
}
请帮忙解决我的问题,不要直接给出代码,想知道其所以然{:10_257:}
本帖最后由 傻眼貓咪 于 2021-10-15 21:32 编辑
大哥,已经告诉过你了,而且上次解说非常清楚,只是你问了又不看别人解说?我再说一次吧,星期日 是 case 0 不是 case 7,所以星期日输出空白(因为没有东西输出)
至於其它问题,请你看回去之前你已经问过的那篇发文,里面详细解说,我也懒得再说了 傻眼貓咪 发表于 2021-10-15 21:29
大哥,已经告诉过你了,而且上次解说非常清楚,只是你问了又不看别人解说?我再说一次吧,星期日 是 case 0 ...
这个知道了,还有其它的{:10_243:} 傻眼貓咪 发表于 2021-10-15 21:32
至於其它问题,请你看回去之前你已经问过的那篇发文,里面详细解说,我也懒得再说了
我一个新手你不就着我的代码进行改正,指正,我也难看懂你写的啊 waixiong 发表于 2021-10-15 21:45
我一个新手你不就着我的代码进行改正,指正,我也难看懂你写的啊
看回去你之前的发文,就在第7楼,我是以你的代码做解说和纠正的
页:
[1]