美文网首页
一年中的第几天

一年中的第几天

作者: xialu | 来源:发表于2021-12-21 23:45 被阅读0次

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/day-of-the-year

    题目描述:

    给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。
    通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。

    示例 1:

    输入:date = "2019-01-09"
    输出:9

    示例 2:

    输入:date = "2019-02-10"
    输出:41

    示例 3:

    输入:date = "2003-03-01"
    输出:60

    示例 4:

    输入:date = "2004-03-01"
    输出:61

    代码实现:
    class Solution {
        static int[] nums = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        static int[] f = new int[13];
        static {
            for (int i = 1; i <= 12; i++) f[i] = f[i - 1] + nums[i - 1];
        }
        public int dayOfYear(String date) {
            String[] ss = date.split("-");
            int y = Integer.parseInt(ss[0]), m = Integer.parseInt(ss[1]), d = Integer.parseInt(ss[2]);
            boolean isLeap = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
            int ans = m > 2 && isLeap ? f[m - 1] + 1 : f[m - 1];
            return ans + d;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:一年中的第几天

          本文链接:https://www.haomeiwen.com/subject/oqwfqrtx.html