D122 1154. Day of the Year

题目链接

1154. Day of the Year

题目剖析

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

思路

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

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

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

最终代码

<?phpclass 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%,有晋升空间。

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