首页 > 编程语言 >PHP实现公历转节气

PHP实现公历转节气

时间:2022-11-16 02:22:05浏览次数:44  
标签:公历 rt shijian ns echo 节气 Year array PHP

private function JieqiList($Year)
        {
            //echo $Year;
            $year = substr($Year,-2)+0;
            $coefficient = array(
                array(5.4055,2019,-1),//小寒
                array(20.12,2082,1),//大寒
                array(3.87),//立春
                array(18.74,2026,-1),//雨水
                array(5.63),//惊蛰
                array(20.646,2084,1),//春分
                array(4.81),//清明
                array(20.1),//谷雨
                array(5.52,1911,1),//立夏
                array(21.04,2008,1),//小满
                array(5.678,1902,1),//芒种
                array(21.37,1928,1),//夏至
                array(7.108,2016,1),//小暑
                array(22.83,1922,1),//大暑
                array(7.5,2002,1),//立秋
                array(23.13),//处暑
                array(7.646,1927,1),//白露
                array(23.042,1942,1),//秋分
                array(8.318),//寒露
                array(23.438,2089,1),//霜降
                array(7.438,2089,1),//立冬
                array(22.36,1978,1),//小雪
                array(7.18,1954,1),//大雪
                array(21.94,2021,-1)//冬至
            );
            $jq_name = array("",
                "立春","雨水",
                "惊蛰","春分",
                "清明","谷雨",
                "立夏","小满",
                "芒种","夏至",
                "小暑","大暑",
                "立秋","处暑",
                "白露","秋分",
                "寒露","霜降",
                "立冬","小雪",
                "大雪","冬至",
                "小寒","大寒");
            $rt=array(
                array("nian"=>$Year)
                );
            for($month=1;$month<13;$month++)
            {
                $idx1 = ($month-1)*2;
                $ns_leap_value=($year-1)/4;
                //$ns_leap_value=floor($ns_leap_value);
                $ns_day1=$year*0.2422+$coefficient[$idx1][0]-$ns_leap_value;
                $ns_day2=$year*0.2422+$coefficient[$idx1+1][0]-$ns_leap_value;
                
                if(isset($coefficient[$idx1][1])&&$coefficient[$idx1][1]=$year)
                {
                    $ns_day1+=$coefficient[$idx1][2];
                }
                if(isset($coefficient[$idx1+1][1])&&$coefficient[$idx1+1][1]==$Year)
                {
                    $ns_day1+=$coefficient[$idx1+1][2];
                }
                $id1=($month*2-1+22)%24;
                if($id1==0)
                {
                    $id1=24;
                }
                $id2=($month*2+22)%24;
                if($id2==0)
                {
                    $id2=24;
                }
                if($month<10)
                {
                    $month='0'.$month;
                }
                $day1=floor($ns_day1);
                if($day1<10)
                {
                    $day1='0'.$day1;
                }
                $shijian=$Year.'-'.$month.'-'.$day1.' '.$this->secToTime(($ns_day1-floor($ns_day1))*86400);
                $jie=array(
                    "id"=>$id1,
                    "zi"=>$jq_name[$id1],
                    "shijian"=>$shijian
                    );
                $shijian=$Year.'-'.$month.'-'.floor($ns_day2).' '.$this->secToTime(($ns_day2-floor($ns_day2))*86400);
                $qi=array(
                    "id"=>$id2,
                    "zi"=>$jq_name[$id2],
                    "shijian"=>$shijian
                );
                array_push($rt, array("jie"=>$jie,"qi"=>$qi));
            }
            // echo '<pre>';
            // print_r($rt);
            // echo '</pre>';
            // echo __FILE__.__LINE__;
            return $rt;
        }

 

标签:公历,rt,shijian,ns,echo,节气,Year,array,PHP
From: https://www.cnblogs.com/zhoulegeyi/p/16894603.html

相关文章

  • 【Redis】PHP操作Redis的命令大全
    1、连接到redis服务<?php//连接本地的Redis服务$redis=newRedis();$redis->connect('127.0.0.1',6379);echo"Connectiontoserversucessfully";//设置redis......
  • PHP可以用来做什么
    PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。实际上PHP能做任何事。PHP主要是用于服务端的脚本程序,因此可......
  • PHP常用函数
    PHP常用函数总结数学函数1.abs():求绝对值$abs=abs(-4.2);//4.2数字绝对值数字2.ceil():进一法取整echoceil(9.999);//10浮点数进一取整3.floor():舍去法......
  • php抽奖概率算法(刮刮卡,大转盘)
    参考:https://www.jb51.net/article/87242.htm本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单,代码里有详细注释说明,供大家参考,具体内容如下......
  • 宝塔面板PHP7.3 安装mcrypt扩展
    mcrypt扩展从PHP7.1.0开始废弃,所以需要继续使用这个扩展的话需要自行编译mcrypt扩展或者采用pcel安装。yuminstalllibmcryptlibmcrypt-develmcryptmhashw......
  • PHP获取真实IP地址(获取本地127.0.0.1真实地址)
    PHP获取真实IP地址publicfunctionget_real_ip(){static$realip;if(isset($_SERVER)){if(isset($_SERVER['HTTP_X_FORWARDED_......
  • php 导出图片为pdf
    require_onceROOTPATH.'tcpdf/vendor/autoload.php';$html='';if($html){mpdf($html);}else{echo"下载失败,请选择资源";die();}functionmPdf($htm......
  • PHP YouTube字幕转srt格式
     <?phpfunctionformatNum(int$time){if($time<10){return"0{$time}";}return$time;}functionchangeTimeType(int$num):string......
  • PHP二分法
    classHalfFind{/***@desc二分法查找效率老高了前提:必须是有序的数组*@desc二分法时间复杂度为O(logn)**@param$nums*......
  • PHP的TP框架的limit使用注意事项
    使用limit时需要注意不要用find()需要用paginage或select这种多选的方法比如: Db::name('user')->limit($offset,1)->order('id','asc')->find();......