c语言判断元旦是星期几,c语言计算日期为星期几

#include 

#include 

int Day(int y,int m,int d);

int main(int argc, char *argv[]) {

int i;  //循环变量

int year,month,day;  //读取用户输入的年月日

int days;  //储存从1900-1-1到该天的天数

int week=0;  //储存求余后的星期

//字符串组合输出星期

char b[]={"星期"};

char c[7][4]={"日","一","二","三","四","五","六"};

loop:printf("请输入年 月 日:(空格分隔)\n");

scanf(" %d%d%d",&year,&month,&day);

days=Day(year,month,day);

//增强程序的健壮性

if(days==-1)

{

printf("输入格式有误,");

fflush(stdin);  //防止用户输入字母等其他非数字字符

goto loop;

}

else

{

week=days%7;  //用求余计算星期几

printf("%d年%d月%d日是%s%s\n",year,month,day,b,c[week]);

}

system("pause");

return 0;

}

//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法

int Day(int y,int m,int d)

{

int i;

int r=0;  //储存1900到该天的闰年个数

int a[]={31,28,31,30,31,30,31,31,30,31,30}; //m给每出月的天数

if(y>=1900 && m>0 && m<13 && d>0 && d<32)

{

for(i=1900;i<=y;i++)  //计算闰年的个数

{

if(i%400==0||i%100!=0&&i%4==0)

r++;

}

for(i=0;i

{

d+=a[i];

}

if((y%400==0||y%100!=0&&y%4==0)&&m<3)  //如果当年是闰年但不到二月就不能算进去

r--;

return 365*(y-1900)+r+d;

}

else

return -1;

}

温馨提示:答案为网友推荐,仅供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值