16.根据输入的日期输出星期几(已知公元1年1月1日星期一)

#include <cstdlib>
#include <iostream>
using namespace std;

int months[]={31,28,31,30,31,30,31,31,30,31,30,31};

int IsLeap( int year) 
{
if((year%4==0&&year%100!=0)||(year%100==0&&year%400==0))
  {
  return 1;//闰年                                                      
  }
else 
  return 0;//平年 
}

void Print(int weekday)
{
switch(weekday){
         case 0: printf("星期日");break;
         case 1: printf("星期一");break;
         case 2: printf("星期二");break;
         case 3: printf("星期三");break;
         case 4: printf("星期四");break;
         case 5: printf("星期五");break;
         case 6: printf("星期六");break;
         default: printf("error");
               }     
} 

int GetDays(int year , int  month ,int day)//得到输入的年月日月  与  1年1月1日  相隔的天数   (不计算第一天) 
{
    int days=0;
    int i,j,k;
    for(i=1;i<year;i++){
                            if(IsLeap(i))days=days+366;else days=days+365;
                       }
    for(j=1;j<month;j++){
                            if(j==2&&IsLeap(year)) days=days+29;
                            else days=days+months[j-1];
                         }
    for(k=1;k<day;k++){
                       days++;
                       }
    return days;
}
int main(int argc, char *argv[])
{
    int year,month,day;
    printf("输入你要查询的年月日,用,分隔\n"); 
    int result=scanf("%d,%d,%d",&year,&month,&day); 
    
    if(result!=3){
          printf("输入错误");
          system("PAUSE");
         } 
    if((year<0)||(month<1) || (month>12) || (day<1) || (day >31)){
          printf("输入错误");
          system("PAUSE");
         }
   
   int days=GetDays(year , month ,day);
   int weekday=(1+days)%7;
   Print(weekday);
    system("PAUSE");
    return EXIT_SUCCESS;
}


 

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值