c语言1900年元旦是星期一,【图片】计算1900年元旦以后某天为星期几的程序还有待改进…没有对输入数据准确性作判断以及星期部分的显示未作中文转化处理【c语言吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

/*1900-01-01:星期一,求往后的某年某月某日为星期几*/

#define END 5 //控制程序执行次数

int main()

{

int run=0; //用来控制go to语句执行次数

Again: //go to 语句标签

int leap(int year,int month); //声明计算经历闰年闰月次数的函数

int count=0; //存放经历闰年闰月的次数

int n=0; //存放相距1900年共经历多少个年头

int sum_day=0; //存放输入的年份相距1900年元旦的天数

int day=0; //日子

int days; //存放相距1900年元旦共经历的天数

int y,m,d,w;

scanf("%d-%d-%d",&y,&m,&d); //输入格式样例:2004-01-01

n=y-1900;

count=leap(y,m); //调用leap函数

sum_day=n*365+count;

switch(m-1)

{

case 11:day+=30;

case 10:day+=31;

case 9:day+=30;

case 8:day+=31;

case 7:day+=31;

case 6:day+=30;

case 5:day+=31;

case 4:day+=30;

case 3:day+=31;

case 2:day+=28;

case 1:day+=31;

case 0:{ day+=0;

days=day+d+sum_day; //计算经历的总天数

w=(days % 7); //总天数与7求余,余几则是星期几

if(w==0) w+=7; //余0则是星期日

printf("%d-%d-%d是星期:%d\n\n",y,m,d,w);

}break;

default :printf("输入数据有误");break;

}

run+=1;

if(run

return 0;

}

int leap(int year,int month) //定义计算经历闰年闰月次数的函数

{

int i,count=0;

for(i=1900;i<=year;i++)

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

count++;

if(((year%4==0&&year%100!=0)||year%400==0)&&month<3)

count-=1; //若输入的年份刚好是闰年且月份小于3则经历次数应当减去1

return(count);

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值