【LeetCode每日一题】1154. 一年中的第几天(直接计算+调用库函数)
2023-12-31 17:32:52
2023-12-31
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() 方法则返回该日期在其所属年份中的天数
}
文章来源:https://blog.csdn.net/m0_64003319/article/details/135317484
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!