文章目录

  • 前言
  • 题目
  • 分析
  • 算法
  • 难度
  • 实战
    • 1、创建算法
    • 2、创建测试用例
    • 3、测试结果
  • 总结

前言

蓝桥杯全国软件和信息技术专业人才大赛由工业和信息化部人才交流中心主办,每年参赛人数超过30000人。蓝桥杯大赛作为国内领先的全国性 IT 学习赛事,持续有力支撑综合测评、奖学金评定、升学考研,是高等教育教学改革和创新人才培养的重要竞赛项目。那么,从今天起我将逐一从简到难解析各大编程算法题。

题目

年m月d日是哪一年的第几天。 比如y年的1月1日是那一年的第一天,那么2000年7月7日是那一年的第几天。

分析

1、问题是计算一年的某天是第几天,由于闰年的二月是29天,故我们需要判断是闰年
2、闰年的判断规则 四年一润,百年不润,四百又润,也就是说能被400整除,被4整除并不能被100整除的都是闰年
3、月份规则 1、3、5、7、8、10、12是大月,有31天;2月平年是28天,闰年是29天;4、6、9、11是小月,有30天

算法

1、根据年份判断是否闰年闰月,如果为闰月需要设置当前月份为29天
2、从1月一次到目标月份进行天数跌加,如果叠加月份小于目标月份,直接增加循环月份天数即可;如果循环月份就是目标月份,直接增加目标月份目标日期天数。

难度

难度较为简单,星级 ★

实战

该题为蓝桥杯简单试题,我们本次实战用JAVA语言演示。

1、创建算法

创建算法

/*** 计算当年的第几天* @param year* @param month* @param day* @author senfel* @date 2023/4/11 10:53* @return void*/
private static int computeDay(int year, int month, int day) {if (year == 0 || month == 0 || day == 0) {return 0;}//月份规则 1、3、5、7、8、10、12是大月,有31天;2月平年是28天,闰年是29天;4、6、9、11是小月,有30天//闰年规则 四年一润,百不润,四百又润//润年2月29天特殊处理,指定月份天数数组int mothArr[] ={31,28,31,30,31,30,31,31,30,31,30,31};//总天数int sum = 0;//从第一月依次增加天数至目标月份for(int i=0;i<month;i++){//当前月份的天数int days = mothArr[i];if(i == 1){//二月判断是否是闰年 索引从0开始故为2月if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){//闰年二月为29天days = 29;}}if(i < month -1){//目标倒数第一月sum+=days;}else{//目标月份sum+=day;}}return sum;
}

2、创建测试用例

测试用例

@SpringBootTest
class DemoApplicationTests {/*** 测试计算当前日期为当年第几天算法* @author senfel* @date 2023/4/11 11:29* @return void*/@Testvoid computeDay() {//计算int sum = DayDemo.computeDay(2023, 12, 31);System.err.println("2023-12-31是当年第"+sum+"天");int sum2 = DayDemo.computeDay(2024, 12, 31);System.err.println("2024-12-31是当年第"+sum2+"天");int sum3 = DayDemo.computeDay(2000, 7, 7);System.err.println("2000-07-07是当年第"+sum3+"天");}}

3、测试结果

2023-12-31是当年第365天
2024-12-31是当年第366天
2000-07-07是当年第189天

总结

计算当前日期为当年第几天这个试题较为简单,我们只需了解闰年闰月,以及十二月份天数的常识即可。该试题为【蓝桥杯】简单试题,这也可以看出蓝桥杯的试题有很多都很贴近我们生活。

【蓝桥杯】计算指定日期为当年第几天相关推荐

  1. Python计算给定日期位于当年第几周

    一.计算当前时间处于今年的第几周: 方法一: import time print(time.strftime("%W")) # 索引从0开始 方法二: import datetim ...

  2. 算出指定日期在当年的第几周

    假定我们是按周一算一周开始. 基本计算应该是算出指定日期在当年的第几天,然后算出这些天换算成周,除以7,向下取整+1 比如 当周7号,7-1 = 6 ,6/7=0 余 6 这里涉及到的就是开始日期和结 ...

  3. 蓝桥杯 - 历届试题 - 日期问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...

  4. 用python计算今天是今年的第几天_Python计算指定日期是今年的第几天(三种方法)...

    今天早上和腾讯面试官进行了视频面试,由于音量和网络以及我的垃圾电脑的原因,个人感觉黄了... 最后面试官给了我一道简单的计算题:指定日期是今年的第几年 由于电脑卡到打字都打不动,我勉勉强强写了一点,虽 ...

  5. java计算指定日期的上个月

    文章目录 java计算指定日期的上个月 Calendar类 API 代码实现 java计算指定日期的上个月 Calendar类 Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方 ...

  6. 【mysql】获取指定日期是当年第几周,指定日期所在周的开始和结束日期

    描述 最近在刷mysql的题目,遇到指定日期是当年第几周的问题. 解决 0.总结 先总结,具体使用和区别看下文: # 一.返回第几周 select date_format('2023-01-01',' ...

  7. 判断指定日期为当年第几天(Java实现)

    想要实现的功能是: 从键盘输入年.月.日判断这一天是本年的第几天 不妨先从一个更简单的程序开始入手: 从键盘输入2022年的月.日.要求通过程序输出该日期为2022年的第几天: 如2月2日为2022年 ...

  8. python计算今年第几天_Python三种方法计算指定日期是今年的第几天

    今天早上和腾讯面试官进行了视频面试,由于音量和网络以及我的垃圾电脑的原因,个人感觉黄了... 最后面试官给了我一道简单的计算题:指定日期是今年的第几年 由于电脑卡到打字都打不动,我勉勉强强写了一点,虽 ...

  9. 白名单里的蓝桥杯“计算思维”竞赛到底考啥,有啥用处?

    可能很多人都已经知道了,教育部公布的<2022-2025学年面向中小学生的全国性竞赛活动名单>正式宣告了,蓝桥杯全国软件和信息技术专业人才大赛成为了白名单比赛中的一员了. 而根据蓝桥杯的竞 ...

最新文章

  1. pandas自定义设置dataframe每个索引的标签、自定义设置索引的列名称(customize index name and index label)
  2. MyBatis-Plus_通用service
  3. python os.environ windows_python 获取系统环境变量 os.environ and os.putenv
  4. Ajax提交打开新窗口,浏览器拦截处理;以及跨域问题
  5. 苹果暖场之后 华为P30系列正式发布!你的“望远镜”手机终于来了
  6. 如何手动安装wxpython_如何在Ubuntu中安装wxPython的方法及命令
  7. 华泰证券人工智能系列(1):人工智能选股框架及经典算法简介
  8. JavaScript 运算符
  9. DJFocus是个什么东东
  10. 云计算主要包含哪些基本特征?
  11. 【原创】2009年8月25日老谷项目管理MSN群专题—敏捷生态
  12. css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
  13. Python就业前景好不好?学Python好找工作吗?
  14. 思科系统公司(Cisco Systems, Inc.)
  15. 数据分析: 带你一览特朗普总统的“微博”世界 (上)
  16. java-net-php-python-java租房管理系统计算机毕业设计程序
  17. 读取单细胞测序数据时出现错误 Error in readMM(file = matrix.loc) : file is not a MatrixMarket file
  18. 《每日一记 》网络篇-ARP协议与IP地址MAC地址
  19. 电脑术语之五主板术语
  20. 利用爬虫从一个百度贴吧页面下载图片

热门文章

  1. linux java 缓存服务器,linux服务器缓存环境memcached筹建及应用(java)
  2. 给AI新手推荐的十篇最佳数据科学文章
  3. 修改cmd命令窗口的编码格式
  4. 使用随机文件流类RandomAccessFile将一个文本文件倒置读出。
  5. 2020,300道高级iOS开发面试题(最新整理)
  6. 必须做的事 教你数据备份
  7. 用python绘制熊猫图案,在python中绘制熊猫系列的CDF
  8. Java中setyear和getyear_java时间类Calander,Date等的问题
  9. 简述windows计算机启动过程,计算机启动过程
  10. 问题 B: 不同出栈情况(栈和队列)