求某一天是星期几(模板)

【入门】今天星期几

***题目描述***
编一程序实现: 由输入1980年以后的任意一个日期后,计算机能打印出该日期是星期几。日期肯定合法,绝不会出现类似-23年13月52日的情况 ,已知1980年1月1日是星期二。
输入
年 月 日 日期有3个整数组成,中间用空格隔开
输出
一个整数星期 星期用1 2 3 4 5 6 7表示 (若是星期日就输出7) 样例
输入
2009 1 2
输出
5
分析如下:
主要是找出闰年与普通年的区别,求出总天数,求出其对7的余数,因为1月1日为星期二,故再加上1即可。
代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,j,year,mouth,day;
    int count=0,count1=0,count2=0,a=0,sum=0;
    //count求的是在两者之间有多少闰年
    //count1求的是到所给月份之间包含几个31天的月份
    //count2求的是在其间有几个30天的月份
    //a代表的是所给的呢一年的二月份的天数
    //sum是从1980年的第一开始到所给日期的总天数
    scanf("%d%d%d",&year,&mouth,&day);
    if(year>=1980&&mouth>0&&mouth<=12&&day>0&&day<=31)
    {
       for(i=1980;i<year;i++)
       {
       if((i%4==0&&i%100!=0)||(i%400==0))
        count++;
       }
       for(j=1;j<mouth;j++)
       {
       if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
        count1++;
       if(j==4||j==6||j==9||j==11)
        count2++;
       if(j==2)
       {
        if((year % 4 == 0 && year % 100 !=0)||(year % 400 ==0 ))
            a=29;
        else
            a=28;
       }
       }
       sum=(year-1980)*365+count+count1*31+count2*30+a+day;
       printf("%d",sum%7+1);
    }
    else
        printf("输入有误");
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值