1154. 一年中的第几天 --力扣 --JAVA

2023-12-31 05:25:17

题目

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

解题思路

  1. 将每个月包含的日期数枚举出来(12月可枚举也可不枚举);
  2. 通过分割字符串获取当前日期的年、月、日;
  3. 计算当前年份是否为闰年,若是则修改二月份的日期为29,默认为28;
  4. 当月天数加上之前每个月的天数。

代码展示

class Solution {
    private int[] days = new int[]{31,28,31,30,31,30,31,31,30,31,30};
    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 ans = day;
        if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
            days[1] = 29;
        }
        for(int i = 1; i < month; i++){
            ans += days[i - 1];
        }
        return ans;
    }
}

文章来源:https://blog.csdn.net/qq_45794129/article/details/135311604
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。