统计起始日期之间有多少个2月29日

编程之美2015资格赛--题目1 : 2月29日 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。 只有闰年有2月29日,满足以下一个条件的年份为闰年: 1. 年份能被4整除但不能被100整除 2. 年份能被400整除 输入 第一行为一个整数T,表示数据组数。 之后每组数据包含两行。每一行格式为"month day, year",表示一个日期。month为{"January", "February", 阅读详情

题目:统计起始日期之间有多少个2月29。


#include <iostream>
#include <string>

using namespace std;

class Date
{
private:
    int month;
    int day;
    int year;

    static int getMonthFromString(const string &s)
    {
        static const string months_str[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
        for (int i = 0; i < 12; ++i)
            if (!months_str[i].compare(s))
                return i + 1;

        return 0;
    }

    bool isNotAfter0229() const
    {
        if (month < 2) return true;
        if (month == 2 && day <= 29) return true;
        return false;
    }

    bool isNotBefore0229() const
    {
        if (month > 2) return true;
        if (month == 2 && day == 29) return true;
        return false;
    }

    bool isLeapYear() const
    {
        if (!(year % 400)) return true;
        if (!(year % 4) && (year % 100)) return true;
        return false;
    }

    bool isLeapYear(int y) const
    {
        if (!(y % 400)) return true;
        if (!(y % 4) && (y % 100)) return true;
        return false;
    }

public:
    Date(string m, int d, int y) : month(getMonthFromString(m)), day(d), year(y) {}

    int count0229tillDate(const Date &end_date)
    {
        int count = 0;
        if (end_date.year == year)
        {
            if (isLeapYear() && isNotAfter0229() && end_date.isNotBefore0229())
                ++count;
        }
        else
        {
            if (isLeapYear() && isNotAfter0229()) ++count;
            for (int i = year + 1; i < end_date.year; ++i)
                if (isLeapYear(i))
                    ++count;
            if (end_date.isLeapYear() && end_date.isNotBefore0229()) ++count;
        }

        return count;
    }
};

int main()
{
    int T = 0;
    cin >> T;
    for (int t = 1; t <= T; ++t)
    {
        string  start_month, end_month;
        char    comma;
        int     start_day, end_day;
        int     start_year, end_year;

        cin >> start_month >> start_day >> comma >> start_year;
        cin >> end_month >> end_day >> comma >> end_year;

        Date start_date(start_month, start_day, start_year);
        Date end_date(end_month, end_day, end_year);
        cout << "Case #" << t << ": " << start_date.count0229tillDate(end_date) << endl;
    }

    return 0;
}
Visual Studio Code + MCP Server + Claude Code 三件套进行 ABAP 开发 本文介绍了如何在Visual Studio Code中利用Claude Code和SAP官方提供的MCP Server进行ABAP开发。作者分享了19年ABAP开发经验,从手动编码到如今通过自然语言生成高质量代码的技术演进。详细说明了配置步骤:启用ADT MCP Server、安装Claude Code扩展、配置.claude.json文件,并验证MCP Server的14个功能。通过实例演示了如何用自然语言指令让Claude Code创建包含冒泡排序实现和单元测试的ABAP类,展示了MCP Server在 阅读详情

相关推荐

【记录】游戏体验报告怎么写(自我成长篇)

2019年3月更新: 这个倒是不用推翻,我个人虽然写的东西还是有一些偏差的,但是“表哥”说的倒是没毛病的,这篇主要是为了记录用,具体的干货也有,都在图片里,请自行提取 =====18年初原答案 作为一个游戏策划新人,游戏分析可能抓不到点子上,试着总结记录一下游戏体验报告分析的成长(因为水平不同,视野可能也不一样,也许之后几年回头看这些东西都是小儿科或者是错误的,所以只写出当下的想...

eat_human的博客 6万+

hihocoder #1148 : 2月29日(容斥原理,有坑)

题目链接:#1148 : 2月29日 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。 只有闰年有2月29日,满足以下一个条件的年份为闰年: 年份能被4整除但不能被100整除 年份能被400整除 输入 第一行为一个整数T,表示数据组数。 之后每组数据包含两行。每一行格式为”mon...

nhl19961226的博客 606

Win10系统下Protel 99 SE元件库导入报错?3步搞定File is not recognized问题

本文详细介绍了在Win10系统下解决Protel 99 SE元件库导入报错'File is not recognized'的3步终极方案。通过手动修改配置文件、使用专用工具和优化系统兼容性设置,帮助用户快速解决这一经典PCB设计软件的兼容性问题,提升工作效率。

m3n5b7v8c9x的博客 796

2016年02月29日

自学 c++

jenny890105的专栏 556

使用vcpkg快速安装opencascade并自动配置部署开发环境

广泛的开源库:vcpkg 提供了上千个流行的 C++ 开源库,用户可以通过简单的命令安装和集成这些库,包括 Boost、OpenCV、SQLite、fmt 等。确保包版本一致性:通过 vcpkg.json 文件,开发者可以指定依赖的库版本,确保项目在不同环境下的构建结果一致,避免由于依赖库版本不一致而导致的构建问题。强大的社区支持:Vcpkg 是开源项目,拥有活跃的社区和微软团队的支持,提供了稳定的更新和问题修复。快速更新:Vcpkg 社区活跃,库的更新速度较快,开发者可以迅速获得库的最新版本。

loujiand的博客 2293

Python OpenCV基于颜色通道分离法去除图片中的红色印章

最近一段时间的工作都是研究如何去除图片中的红色印章,在网上查找了大量的大佬写过的方法,发现大多数是采取颜色通道分离法来做,并且效果还不错。站在前人的肩膀上,我又做了些许调整,谈不上是改进,但是能应对更对的情况总还是好的,特此记录。 拿发票做例子,印章相较于其它部分最大的不同就是印章是红色的,而其它部分不是(这是一句废话)。 那么第一步当然就是将红色分离出来,这一步可以采用Python第三方库OpenCV里的 cv2.split()方法,该方法是把RGB图像的三个通道拆分开来,得...

wl_Honest的博客 1万+

蓝桥杯C/C++B组省赛日期类问题汇总

蓝桥2017第八届省赛第七题 日期问题 思路:暴力枚举从1960年1月1日到2059年12月31日的所有合法日期,然后拆分出年月日,如果符合题目中的三种情况之一(年/月/日 月/日/年 日/月/年)的输出即可 #include<bits/stdc++.h> using namespace std; int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int check(int year, int month, in

qq_51817638的博客 1875

advanced installer 打包Flutter的Windows程序安装包(基本打包、开机自启、定时自动检测升级、包含卸载程序)

advanced installer 打包Flutter的Windows程序安装包(基本打包、开机自启、定时自动检测升级、包含卸载程序)

qq_45634989的博客 2878

mysql 计算两个日期间有多少个2月29

功能: 统计两个日期间有多少个2月29 实现方法: 2月29天数 = 两个日期天数差 - (两个日期在一个自然年内天数差 + 365 * 两个日期年数差) DELIMITER $$DROP FUNCTION IF EXISTS `F_GET_LEAYYEAR_DAYS`$$CREATE FUNCTION `F_GET_LEAYYEAR_DAYS`(start_date BIG

chinacmt的博客 1360

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

Coding... 2852

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

统计闰年2月29日天数

1.问题描述 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。 只有闰年有2月29日,满足以下一个条件的年份为闰年: 1. 年份能被4整除但不能被100整除 2. 年份能被400整除 输入 第一行为一个整数T,表示数据组数。之后每组数据包含两行。每一行格式为"month day, year",表示一个日期。month为{"January", "Februar...

weixin_30387799的博客 399

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

`2015 编程之美 资格赛 第一题 hihocoder 区间闰年 2月29 数量 模拟题

`2015 编程之美 资格赛 第一题 hihocoder 区间闰年 2月29 数量 模拟题时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。只有闰年有2月29日,满足以下一个条件的年份为闰年: 年份能被4整除但不能被100整除 年份能被400整除 输入 第一行为一个整数T,表示数据组数。之后每组数

daguge1的专栏 675

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

二级考试(青少年):计算两个日期之间的天数

计算两个日期之间的天数 给定两个日期,计算相差的天数。比如2010-1-1和2010-1-3相差2天。 时间限制:1000 内存限制:65536 输入 共两行: 第一行包含三个整数startYear,startMonth,startDay,分别是起始年、月、日。 第二行包含三个整数endYear,endMonth,endDay,分别是结束年、月、日。 相邻两个整数之间用单个空格隔开。 年份范围在1~3000。保证日期正确且结束日期不早于起始日期。 输出 输出一个整数,即是两个日期相差的天数。 样例输入.

脚印 736

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python输出一年有多少天多少时分秒_python:计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上...

# -*- coding: UTF-8 -*-""" Created on 2017/4/2 @author: cat """import logging""" 根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上? a) 1900.1.1是星期一 b) 1月,3月,5月,7月,8月,10月和12月是31天 c) 4月,6月,9月和11月是30天 d) ...

weixin_39824033的博客 718

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝桥杯练习笔记(二十-日期问题)

日期题常见于填空题,关键点涉及闰年的判断和星期几的判断。

m0_73902771的博客 1213

回文日期

链接:https://ac.nowcoder.com/acm/problem/16438 来源:牛客网 题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这...

huantingyizhan的博客 3422

用贝叶斯统计反推病毒暴露时间:从确诊日估算感染日

病毒潜伏期并非固定值,而是一个服从正态分布的概率过程;其核心原理是利用先验知识(如毒株特异性潜伏期均值与标准差)与个体化证据(如明确暴露史、症状起始日、家庭传播链)进行贝叶斯更新,生成可解释、可审计的后验概率分布。该方法兼顾流行病学规律与临床现实,避免简单相减导致的系统性偏差,技术价值在于提供带置信区间的感染时间估计,而非单一点预测。典型应用场景包括密接者时间锚定、病程阶段评估及家庭传播溯源。本文聚焦SARS-CoV-2感染时间反推,深度融合贝叶斯统计与正态分布建模。

weixin_34072458的博客 504

P2010回文日期

题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用88位数字表示一个日期,其中,前44位代表年份,接下来22位代表月 份,最后22位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个88位数字是回文的,当且仅当对于所有的i ( 1 \le i \le 8)i(

weixin_51552058的博客 277

回文日期(逆向思维)

一年总共12个月,每月的天数都不同,二月的处理时本题一个难点,闰年的二月无非就是多了一个29日,而0229对应的回文数为92200229,9220正好为闰年,所以直接把二月看做29天就好了。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期。一个8位数字是回文的,当且仅当对于所有的i ( 1

纵有疾风起 人生不言弃 1882

回文日期 (思维)

描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个8位数字是回文的,当且仅当对于所有的i(1≤i≤8)从左向右数的第i个数字和第9−i个数字

qq_51738428的博客 313

2021 年10月30日星期六

牛客网算法竞赛入门班第一节课习题 NOIP2016 回文日期,两种写法,正常枚举,暴力打表 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个.

m0_52163052的博客 187

暑假每日算法学习打卡(四)----回文日期 (牛客)

暑假每日算法学习打卡(四)----回文日期 (牛客)

weixin_66170039的博客 353

洛谷:P2010 回文日期

题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前44位代表年份,接下来2位代表月 份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个8位数字是回文的,当且仅当对于所有的i(1≤i≤8)从左向右数的第i个 数字和第9-i个数字

K_CRACKING的博客 1444

25:计算两个日期之间的天数【2019信科夏令营考前练习A】

25:计算两个日期之间的天数【2019信科夏令营考前练习A】

JingleBell_Moon的博客 250
上一篇: 面试题:旋转数组
下一篇: 判定两个集合是否相同
chfe910
博客等级 码龄14年 56粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值