2023-12-31
文章目录
- [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)
- 方法一:直接计算
- 思路:
- 方法二:调用库函数
- 思路
1154. 一年中的第几天
方法一:直接计算
思路:
1.根据所给的字符串,分别截取出年月日的信息,转化成整数
2.根据当前年份,判断是否为闰年,是闰年:二月加1
3.之前月份天数之和,最后加上天数的信息
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));//调用substring分别截取出年月日的信息,转化为整数int[] monthes = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//每个月份的天数if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {++monthes[1];}//如果当前的闰年,二月加1天(直接改变月份字典中的数)int ans = 0;for (int i = 0; i < month - 1; ++i) {ans += monthes[i];//每个月天数之和}return ans + day;}
方法二:调用库函数
思路
1.指定日期字符串的格式
2.解析为 LocalDate 对象
3.返回该日期在其所属年份中的天数
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//定义了一个 DateTimeFormatter 对象,它指定了日期字符串的格式为 "yyyy-MM-dd"public int dayOfYear2(String date) {return LocalDate.parse(date, formatter).getDayOfYear();//LocalDate.parse() 方法将日期字符串解析为 LocalDate 对象//getDayOfYear() 方法则返回该日期在其所属年份中的天数}
点击移步博客主页,欢迎光临~