【闰年平年计算天数】用户输入未来的某一天,输入格式为如202161,编程计算这一天和今天相 差多少天?

闰年分为普通闰年和世纪闰年。

普通闰年:公历年份是4的倍数,且不是100的倍数,为普通闰年。(如 2004年就是普通闰年)。

世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900 年不是世纪闰年,2000年是世纪闰年)。

所以有人将此规则总结为:四年一闰,百年不闰,四百年再闰。

闰年的一年为366天,闰年的二月份为29天。平年一年为365天,平年的二 月为28天

每年的1、3、5、7、8、10、12月份为31天,4、6、9、11月份为30天。

【编程实现】

算天数。

用户输入未来的某一天,输入格式为如202161,编程计算这一天和今天相 差多少天?(例如:今天和明天是相差一天)星期几?(注意:输出格式为 星期的数字值并在其前加“*”)。

输入描述:按要求输入未来某一天。

输出描述:第一行输入一正整数表示今天和未来一天相差的天数,第二行输 入未来的一天星期几且在星期前加“*”。

【样例输入】

2021 6 1

【样例输出)

183

*2

蓝桥杯C++题目《平年闰年算天数》创氪编程参考程序 
#include <bits/stdc++.h>
using namespace std; 
bool isLeap(int y){//判断闰年和平年的函数,返回布尔值 
    return y%4==0&&y%100!=0||y%400==0;
} 
int main(){
    const int Y=2021, M=1, D=14, W=4; // 定义今日日期
    int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    //每个月份的天数 
    days[2] = 28 + (int)isLeap(Y);//2月平年为28天 
    int y, m, d;
    cin >> y >> m >> d;//输入年 月 日 
    int i=Y, j=M, k=D, w=W, cnt=0; 
    while (!(i==y&&j==m&&k==d)){//循环至满足条件 
        cnt++;//总数累加 
        w++;//星期累加 
        if (w>7){//一星期七天 
            w=1;//大于7从1开始 
            cout<<"星期w="<<w<<endl; 
        }
        k++;//天数 
        if (k>days[j]){//循环至条件满足 
            k=1;
            j++;
            if (j>12){
                j=1;
                i++;
                days[2]=28+(int)isLeap(i);//2月28天
            }
        }
    }
    cout<<cnt<<endl<< '*' << w << endl; //输出结果 
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值