zoukankan      html  css  js  c++  java
  • 两个日期这间的间隔天数

    /**
         * 两个日期这间的间隔天数
         * @param $date1
         * @param $date2
         * @return float
         */
        public static function daysBetweenDates($date1, $date2)
        {
            $days = floor(abs($date1 - $date2) / 86400);
            return $days;
        }
    
        /**
         * 获取两个时间间隔之间的所有日期
         * @param string|int $minDay like "2015-05-05" or unix_timestamp
         * @param string|int $maxDay like "2015-06-05" or unix_timestamp
         * @return array  ['2015-050-05','2015-05-06',...]
         */
        public static function getAllDays($minDay, $maxDay)
        {
            $minTime = is_numeric($minDay) ? intval($minDay) : strtotime($minDay);
            $maxTime = is_numeric($maxDay) ? intval($maxDay) : strtotime($maxDay);
            $res = [];
            for ($current = $minTime; $current <= $maxTime; $current = strtotime(date("Y-m-d", $current) . " +1 day")) {
                $res[] = date("Y-m-d", $current);
            }
            return $res;
        }
    
        /**
         * 获取两个时间间隔之间的所有星期 (当年的第几周)
         * @param string|int $minDay like "2015-05-05" or unix_timestamp
         * @param string|int $maxDay like "2015-06-05" or unix_timestamp
         * @return array  ['2015 05','2015 06',...]
         */
        public static function getAllWeeks($minDay, $maxDay)
        {
            $minTime = is_numeric($minDay) ? intval($minDay) : strtotime($minDay);
            $maxTime = is_numeric($maxDay) ? intval($maxDay) : strtotime($maxDay);
            $year = date("Y", $minTime);
            $week = intval(date("N", $minTime));
            $startTime = $minTime - ($week - 1) * 86400;
            $startYear = date("Y", $startTime);
            if ($startYear != $year) {
                $startTime = strtotime("{$year}-01-01");
            }
            $endWeek = intval(date("N", $maxTime));
            $endTime = $maxTime + (7 - $endWeek) * 86400;
            $res = [];
            for ($current = $startTime; $current <= $endTime; $current = strtotime(date("Y-m-d", $current) . " +1 week")) {
                $res[] = date("Y W", $current);
            }
            return $res;
        }
    
        /**
         * 获取两个时间间隔之间的所有星期 (第几周)
         * @param string|int $minDay like "2015-05-05" or unix_timestamp
         * @param string|int $maxDay like "2015-06-05" or unix_timestamp
         * @return array  ['2015-05','2015-06',...]
         */
        public static function getAllMonth($minDay, $maxDay)
        {
            $minTime = is_numeric($minDay) ? intval($minDay) : strtotime($minDay);
            $maxTime = is_numeric($maxDay) ? intval($maxDay) : strtotime($maxDay);
            $startTime = strtotime(date("Y-m-01", $minTime));
            $res = [];
            for ($current = $startTime; $current <= $maxTime; $current = strtotime(date("Y-m-d", $current) . " +1 month")) {
                $res[] = date("Y-m", $current);
            }
            return $res;
        }
  • 相关阅读:
    luogu P1330 封锁阳光大学 x
    luoguP3353 在你窗外闪耀的星星
    luogu小金明qwq x
    [HDOJ5093] Battle ships(最大匹配)
    [HDOJ5092] Seam Carving(DP,记录路径)
    [UVA1449] Dominating Patterns(AC自动机,STL,计数,神坑)
    [POJ3057]Evacuation(二分图匹配,BFS,二分,好题)
    [POJ3041]Asteroids(二分图,最大匹配)
    [POJ2195]Going Home(带权最大匹配,KM,最小费用流)
    [codeVS1917] 深海机器人问题(费用流,拆边)
  • 原文地址:https://www.cnblogs.com/-mrl/p/7161879.html
Copyright © 2011-2022 走看看