c语言算日期程序

#include"stdio.h"
void main()
{ int year,month,date,sum,n,a,day,i,l,leap=0;

const char *riqi[7]={"日","一","二","三","四","五","六"};
/*定义一个指针数组来显示日期 */
    printf("请输入xx年xx月xx日(用空格隔开)      您共有10次的机会来输入正确的数据\n");
    for(l=0;l<10;l++)                      /*判断是否是正确的数据*/
    { scanf("%d %d %d",&year,&month,&date);
       if((month>=1&&month<=12)&&(date>0&&date<=31))
    {     if(year%4==0&&(year%100!=0)||year%400==0)
                if(month==2&&date>29)
                { printf("输入错误,请重新输入\n");
                continue;
                }
                else break;
            else if(month==2&&date>28)
                    { printf("输入错误,请重新输入\n");
                     continue;
                    }
                 else break;
      }
       else
           printf("输入错误,请重新输入\n");
           continue;
    }

a=month-1;
switch(a)
{ case 0:day=0;break;
    case 1:day=31;break;
    case 2:day=59;break;
    case 3:day=90;break;
    case 4:day=120;break;
    case 5:day=151;break;
    case 6:day=181;break;
    case 7:day=212;break;
    case 8:day=243;break;
    case 9:day=273;break;
    case 10:day=304;break;
    case 11:day=334;break;
    default:printf("data error");break;
   
}
for(i=1;i<year;i++)

{ if((i%4==0)&& (i%100!=0)||(i%400==0))
     leap++;
}               /*leap是用于记录润年的数目的*/

sum=leap*366+(year-1-leap)*365+day+date;

if((year%4==0)&& (year%100!=0)&&month>2||(year%400==0)&&month>2)
/*判断闰年的条件是要大于2月的时候才算*/

    { printf("这是一个闰年\n");
      sum++;
    }


n=sum%7; /*星期数按每7天循环一次*/
printf("输入正确,今天是星期%s\n",riqi[n]);

}

转载于:https://www.cnblogs.com/xiaoxia/archive/2009/08/31/1557706.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值