【蓝桥杯】日期类问题详解

目录

1 判断某年是否是闰年

2 求指定日期是星期几

3 求日期A到日期B有多少天


1 判断某年是否是闰年

       日期类问题常常涉及对闰年的判断:年份是4的倍数的,一般都是闰年;但年份是整百数的,必须是400的倍数才是闰年。

bool run(int y){
    return (y%100 && y%4 == 0)||(y%400==0);
}

有了闰年的判断方法,我们才可以进一步解决日期类问题。

2 求指定日期是星期几

        第一种方法是死记硬背的公式(不大推荐这种方法,个人推荐第二种方法!!!)——基姆拉尔森计算公式:对于 y 年 m 月 d 日,有:

int fun(int y,int m,int d)
{
    int w;
    if(m<=2)    m += 12,y--;
    w = (y + y/4 + y/400 - y/100 + 2*m + 3*(m+1)/5 +d)%7;
    return w;
}
// 其中,w的值为[0,6],分别对应星期一到星期日,即0表示星期一,6表示星期日。

        第二种是一个比较好记忆、适用范围更广的方法:从公元1年1月1日,到给定日期,一共有多少天,然后总天数取模7即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值