1154. Day of the Year

1154. Day of the Year #

题目 #

  • 给定字符串 date,按YYYY-MM-DD格式表示一个现行公元年法日期。

  • 返回该日期是当年的第几天。

思路 #

模拟 #

打表 #

代码 #

模拟 #

class Solution {
    public boolean isLeapYear(int year) {
        /** 能被4整除但不能被100整除的是闰年
          * 能被400整除的是闰年
          */
        return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
    }
    public int dayOfYear(String date) {
        int year = Integer.parseInt(date.split("-")[0]);
        int month = Integer.parseInt(date.split("-")[1]);
        int day = Integer.parseInt(date.split("-")[2]);
        
        int[] days = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        if (isLeapYear(year)) days[1] += 1;
        
        int ans = 0;
        for (int i = 0; i < month - 1; i++) ans += days[i];
        ans += day;
        return ans;
    }
}

打表 #

致谢 #

宫水三叶