当前位置: 首页 > news >正文

【教3妹学编程-算法题】一年中的第几天

阳光明媚

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”
2哥 :3妹,什么事呀这么开森。
3妹:2哥你看今天的天气多好啊,经过了一周多的寒潮,天气总算暖和些了。
2哥:是啊,都说一九二九不出手,三九四九冰上走,这才一九就已经可以冰上走了。
3妹:上海这边虽然也挺冷了,但是还算好,想想北方都已经泼水成冰啦!
2哥:泼水成冰好玩是好玩,但是一定要注意防寒哦,看新闻都有人冻伤了。
3妹:是啊,还是待在室内比较好
2哥:给你出了一道题发你微信里了, 上班通勤的路上记得看一下,回来问你答案~
image.png
3妹:知道啦,难不倒我!

题目:

给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。

示例 1:
输入:date = “2019-01-09”
输出:9
解释:给定日期是2019年的第九天。
示例 2:
输入:date = “2019-02-10”
输出:41

提示:

date.length == 10
date[4] == date[7] == ‘-’,其他的 date[i] 都是数字
date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日

思路:

思考

根据题意,直接计算:
我们首先从给定的字符串 date中提取出年 year,月 month以及日 day。

这样一来,我们就可以首先统计到 month 的前一个月为止的天数。这一部分只需要使用一个长度为 12的数组,预先记录每一个月的天数,再进行累加即可。随后我们将答案再加上 day,就可以得到 date是一年中的第几天。

需要注意的是,如果 year是闰年,那么二月份会多出一天。闰年的判定方法为:year是 400的倍数,或者 year 是 4 的倍数且不是 100的倍数。

java代码:


class Solution {public int dayOfYear(String date) {int year = Integer.parseInt(date.substring(0, 4));int month = Integer.parseInt(date.substring(5, 7));int day = Integer.parseInt(date.substring(8));int[] amount = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {++amount[1];}int ans = 0;for (int i = 0; i < month - 1; ++i) {ans += amount[i];}return ans + day;}
}
http://www.lryc.cn/news/270366.html

相关文章:

  • ramdump 中的memory统计
  • Element-Ui树形数据懒加载,删除到最后一个空数组不刷新问题
  • 基于NASM搭建一个能编译汇编语言的汇编软件工具环境(利用NotePad++)
  • 使用setoolkit制作钓鱼网站并结合dvwa靶场储存型XSS漏洞利用
  • 计算机组成原理-总线概述
  • 三角函数两角和差公式推导
  • HarmonyOS page生命周期函数讲解
  • 3D视觉-结构光测量-线结构光测量
  • ssm基于web的马病管理系统设计与实现+jsp论文
  • SaaS版Java基层健康卫生云HIS信息管理平台源码(springboot)
  • redis,memcached,nginx网络组件,网络编程——reactor的应用
  • 【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024)
  • uniapp学习之路
  • 移动开发新的风口?Harmony4.0鸿蒙应用开发基础+实践案例
  • QT上位机开发(倒计时软件)
  • 2023 楚慧杯 --- Crypto wp
  • Python+OpenCV 零基础学习笔记(1-3):anaconda+vscode+jupyter环境配置
  • Spring Cloud Gateway 常见过滤器的基本使用
  • maven依赖无法传递问题排查
  • JVM钩子
  • linux cat命令增加-f显示文件名功能
  • linux更改登录shell
  • 【JS】报错:Uncaught TypeError: Cannot read properties of null (reading ‘classList‘)
  • kali2.0安装VMware Tools 和自定义改变分辨率
  • redis中根据通配符删除key
  • 【HDFS联邦(2)】HDFS Router-based Federation官网解读:HDFSRouterFederation的架构、各组件基本原理
  • 【头歌实训】Spark 完全分布式的安装和部署
  • Leetcode—86.分隔链表【中等】
  • 淘宝/天猫商品API:实时数据获取与安全隐私保护的指南
  • 使用 SSH 方式实现 Git 远程连接GitHub