关于leetcode:Leetcode-PHP题解D122-1154-Day-of-the-Year

40次阅读

共计 652 个字符,预计需要花费 2 分钟才能阅读完成。

D122 1154. Day of the Year

题目链接

1154. Day of the Year

题目剖析

这道题目比较简单,给定 YYYY-MM-DD 格局的日期,返回这一天是这一年的第几天。

思路

首先要晓得每个月的天数是不一样的,那么咱们先把它存起来。

而后用 array_slice 获取当月之前的所有月份天数,并用 array_sum 函数计算总和。再加上 DD 局部即可。

须要留神的是,只有当待求月份大于 2 月时,才须要通过判断是否是平年来加 1 天。如果待求月份为 1 月或 2 月时,不须要思考平年。

最终代码

<?php
class Solution {

    /**
     * @param String $date
     * @return Integer
     */
    public $daysOfMonth = [
        31,28,31,30,31,30,
        31,31,30,31,30,31,
    ];
    function dayOfYear($date) {list($year, $month, $day) = explode('-', $date);
        $year = intval($year);
        $month = intval($month);
        $day = intval($day);
        $isLeap = intval(($month>2) && ($year%4 == 0) && ($year%100!=0));

        return array_sum(array_slice($this->daysOfMonth,0,$month-1)) + $day + $isLeap;
    }
}

不过这题只战胜了 41.67%,有晋升空间。

若感觉本文章对你有用,欢送用爱发电赞助。

正文完
 0