都是晚上找的,不知道是哪位大神写的
隔空夸奖下
这套代码测试了,目前是准确的
- /**
- *
- * 二十四节气通用的新算法
- *
- *
- *
- *
- * */
-
-
- function solar_term($years,$mon,$mday)
- {
- 0=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1901
- 1=>array(621, 519, 621, 621, 622, 722, 824, 824, 824, 924, 823, 823), //1902
- 2=>array(621, 520, 722, 621, 722, 722, 824, 924, 924, 924, 823, 823), //1903
- 3=>array(721, 520, 621, 520, 621, 622, 723, 823, 823, 824, 823, 722), //1904
- 4=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1905
- 5=>array(621, 519, 621, 621, 622, 622, 824, 824, 824, 924, 823, 823), //1906
- 6=>array(621, 520, 722, 621, 722, 722, 824, 924, 924, 924, 823, 823), //1907
- 7=>array(721, 520, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1908
- 8=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1909
- 9=>array(621, 519, 621, 621, 622, 622, 824, 824, 824, 924, 823, 823), //1910
- 10=>array(621, 520, 722, 621, 722, 722, 824, 924, 924, 924, 823, 823), //1911
- 11=>array(721, 520, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1912
- 12=>array(620, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1913
- 13=>array(621, 419, 621, 521, 622, 622, 824, 824, 824, 924, 823, 823), //1914
- 14=>array(621, 520, 622, 621, 622, 722, 824, 824, 924, 924, 823, 823), //1915
- 15=>array(621, 520, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1916
- 16=>array(620, 419, 621, 521, 621, 622, 823, 824, 823, 924, 823, 722), //1917
- 17=>array(621, 419, 621, 521, 622, 622, 824, 824, 824, 924, 823, 822), //1918
- 18=>array(621, 520, 622, 621, 622, 722, 824, 824, 924, 924, 823, 823), //1919
- 19=>array(621, 520, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1920
- 20=>array(620, 419, 621, 520, 621, 622, 823, 824, 823, 924, 823, 722), //1921
- 21=>array(621, 419, 621, 521, 622, 622, 824, 824, 824, 924, 823, 822), //1922
- 22=>array(621, 519, 621, 621, 622, 722, 824, 824, 924, 924, 823, 823), //1923
- 23=>array(621, 520, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1924
- 24=>array(620, 419, 621, 520, 621, 622, 823, 824, 823, 924, 823, 722), //1925
- 25=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1926
- 26=>array(621, 519, 621, 621, 622, 722, 824, 824, 824, 924, 823, 823), //1927
- 27=>array(621, 520, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1928
- 28=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1929
- 29=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1930
- 30=>array(621, 519, 621, 621, 622, 722, 824, 824, 824, 924, 823, 823), //1931
- 31=>array(621, 520, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1932
- 32=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1933
- 33=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1934
- 34=>array(621, 519, 621, 621, 622, 622, 824, 824, 824, 924, 823, 823), //1935
- 35=>array(621, 520, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1936
- 36=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1937
- 37=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1938
- 38=>array(621, 519, 621, 621, 622, 622, 824, 824, 824, 924, 823, 823), //1939
- 39=>array(621, 520, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1940
- 40=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1941
- 41=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1942
- 42=>array(621, 519, 621, 621, 622, 622, 824, 824, 824, 924, 823, 823), //1943
- 43=>array(621, 520, 621, 520, 521, 621, 723, 823, 823, 823, 722, 722), //1944
- 44=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1945
- 45=>array(620, 419, 621, 521, 622, 622, 823, 824, 823, 924, 823, 822), //1946
- 46=>array(621, 419, 621, 521, 622, 622, 824, 824, 824, 924, 823, 823), //1947
- 47=>array(621, 520, 521, 520, 521, 621, 723, 723, 823, 823, 722, 722), //1948
- 48=>array(520, 419, 621, 520, 621, 622, 723, 824, 823, 824, 822, 722), //1949
- 49=>array(620, 419, 621, 520, 621, 622, 823, 824, 823, 924, 823, 822), //1950
- 50=>array(621, 419, 621, 521, 622, 622, 824, 824, 824, 924, 823, 823), //1951
- 51=>array(621, 520, 521, 520, 521, 621, 723, 723, 823, 823, 722, 722), //1952
- 52=>array(520, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1953
- 53=>array(620, 419, 621, 520, 621, 622, 823, 824, 823, 923, 823, 722), //1954
- 54=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1955
- 55=>array(621, 520, 520, 520, 521, 621, 723, 723, 823, 823, 722, 722), //1956
- 56=>array(520, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1957
- 57=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1958
- 58=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1958
- 59=>array(621, 519, 520, 520, 521, 621, 723, 723, 723, 823, 722, 722), //1960
- 60=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1961
- 61=>array(621, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1962
- 62=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1963
- 63=>array(621, 519, 520, 520, 521, 621, 723, 723, 723, 823, 722, 722), //1964
- 64=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1965
- 65=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1966
- 66=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1967
- 67=>array(621, 519, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //1968
- 68=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1969
- 69=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1970
- 70=>array(621, 419, 621, 521, 622, 622, 823, 824, 824, 924, 823, 822), //1971
- 71=>array(621, 519, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //1972
- 72=>array(520, 420, 621, 520, 521, 621, 723, 823, 823, 823, 722, 722), //1973
- 73=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1974
- 74=>array(621, 419, 621, 521, 622, 622, 823, 824, 823, 924, 823, 822), //1975
- 75=>array(621, 519, 520, 420, 521, 521, 723, 724, 723, 823, 722, 722), //1976
- 76=>array(520, 419, 621, 520, 621, 621, 723, 723, 823, 823, 722, 722), //1977
- 77=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 824, 823, 722), //1978
- 78=>array(621, 419, 621, 521, 621, 622, 823, 824, 823, 924, 823, 822), //1979
- 79=>array(621, 519, 520, 420, 521, 521, 723, 723, 723, 823, 722, 722), //1980
- 80=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 822, 722), //1981
- 81=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1982
- 82=>array(620, 419, 621, 520, 621, 622, 823, 824, 823, 924, 823, 822), //1983
- 83=>array(621, 419, 520, 420, 521, 521, 722, 723, 723, 823, 722, 722), //1984
- 84=>array(520, 419, 521, 520, 521, 621, 723, 723, 823, 823, 722, 722), //1985
- 85=>array(520, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //1986
- 86=>array(620, 419, 621, 520, 621, 622, 723, 824, 823, 924, 823, 722), //1987
- 87=>array(621, 419, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //1988
- 88=>array(520, 419, 520, 520, 521, 621, 723, 723, 723, 823, 722, 722), //1989
- 89=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 824, 822, 722), //1990
- 90=>array(620, 419, 621, 520, 721, 622, 723, 823, 823, 924, 823, 722), //1991
- 91=>array(621, 419, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //1992
- 92=>array(520, 418, 520, 520, 521, 621, 723, 723, 723, 823, 722, 722), //1993
- 93=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1994
- 94=>array(620, 419, 621, 520, 621, 622, 723, 821, 823, 924, 823, 722), //1995
- 95=>array(621, 419, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //1996
- 96=>array(520, 418, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //1997
- 97=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //1998
- 98=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //1999
- 99=>array(621, 419, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //2000
- 100=>array(520, 418, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //2001
- 101=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //2002
- 102=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //2003
- 103=>array(621, 419, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //2004
- 104=>array(520, 418, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //2005
- 105=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2006
- 106=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 924, 823, 722), //2007
- 107=>array(621, 419, 520, 420, 521, 521, 722, 723, 722, 823, 722, 721), //2008
- 108=>array(520, 418, 520, 420, 521, 521, 723, 723, 723, 823, 722, 722), //2009
- 109=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2010
- 110=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 824, 823, 722), //2011
- 111=>array(621, 419, 520, 420, 520, 521, 722, 723, 722, 823, 722, 721), //2012
- 112=>array(520, 418, 520, 420, 521, 521, 722, 723, 723, 823, 722, 722), //2013
- 113=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2014
- 114=>array(620, 419, 621, 520, 621, 622, 723, 823, 823, 824, 822, 722), //2015
- 115=>array(620, 419, 520, 419, 520, 521, 722, 723, 722, 823, 722, 721), //2016
- 116=>array(520, 318, 520, 420, 521, 521, 722, 723, 723, 823, 722, 722), //2017
- 117=>array(520, 419, 521, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2018
- 118=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 824, 822, 722), //2019
- 119=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 823, 722, 721), //2020
- 120=>array(520, 318, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //2021
- 121=>array(520, 419, 520, 520, 521, 621, 723, 723, 723, 823, 722, 722), //2022
- 122=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 824, 822, 722), //2023
- 123=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 823, 722, 621), //2024
- 124=>array(520, 318, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //2025
- 125=>array(520, 418, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //2026
- 126=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //2027
- 127=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 823, 722, 621), //2028
- 128=>array(520, 318, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //2029
- 129=>array(520, 418, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //2030
- 130=>array(520, 419, 621, 520, 621, 621, 723, 823, 823, 823, 722, 722), //2031
- 131=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 823, 722, 621), //2032
- 132=>array(520, 318, 520, 420, 521, 521, 723, 723, 723, 823, 722, 721), //2033
- 133=>array(520, 418, 520, 520, 521, 521, 723, 823, 723, 823, 722, 722), //2034
- 134=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2035
- 135=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 823, 722, 621), //2036
- 136=>array(520, 318, 520, 420, 521, 521, 722, 723, 723, 823, 722, 721), //2037
- 137=>array(520, 418, 520, 520, 521, 521, 723, 723, 723, 823, 722, 722), //2038
- 138=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2039
- 139=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 823, 722, 621), //2040
- 140=>array(520, 318, 520, 420, 520, 521, 722, 723, 722, 823, 722, 721), //2041
- 141=>array(520, 418, 520, 420, 521, 521, 723, 723, 723, 823, 722, 722), //2042
- 142=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2043
- 143=>array(620, 419, 520, 419, 520, 521, 622, 722, 722, 723, 722, 621), //2044
- 144=>array(520, 318, 520, 419, 520, 521, 722, 723, 722, 823, 722, 721), //2045
- 145=>array(520, 418, 520, 420, 521, 521, 722, 723, 723, 823, 722, 722), //2046
- 146=>array(520, 419, 621, 520, 521, 621, 723, 723, 823, 823, 722, 722), //2047
- 147=>array(620, 419, 520, 419, 520, 520, 622, 722, 722, 723, 721, 621), //2048
- 148=>array(519, 318, 520, 520, 520, 521, 622, 722, 722, 823, 722, 721), //2049
- 149=>array(520, 318, 520, 420, 521, 521, 722, 723, 823, 823, 722, 722) //2050
- );
- //节气名称
- "小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨",
- "立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑",
- "白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
-
- //获取当前日期及其年月日
- // $today = getdate();
- $this_year = $years;
- $this_month = $mon;
- $this_day = $mday;
-
- //算取在数组中的位置
- $line = $this_year-1901;
- $row = $this_month-1;
-
- //获取数组中的两个日期
-
- //获取在节气表中的位置
- $t_name_1 = ($this_month-1)*2;
- $t_name_2 = ($this_month-1)*2+1;
-
- //显示相应的节气
- if ($this_day==$term_one)
- {
- $this_term = $term_name[$t_name_1];
- }
- else if($this_day==$term_two)
- {
- $this_term = $term_name[$t_name_2];
- }
- else
- {
- $this_term = NULL;
- }
- return $this_term;
- }
这套代码测试了一直不准
- /*
- * 节气通用算法
- */
- function getJieQi($_year, $month, $day)
- {
- );
- "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨",
- "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑",
- "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至");
-
- $idx1 = ($month - 1) * 2;
- if (isset($coefficient[$idx1][1]) && $coefficient[$idx1][1] == $_year) $day1 += $coefficient[$idx1][2];
- if (isset($coefficient[$idx1 + 1][1]) && $coefficient[$idx1 + 1][1] == $_year) $day1 += $coefficient[$idx1 + 1][2];
-
- //echo __FILE__.'->'.__LINE__.' $day1='.$day1,',$day2='.$day2.'<br/>'.chr(10);
-
- if ($day < $day1) {
-
- $data['name1'] = $term_name[$idx1 - 1];
- $data['name2'] = $term_name[$idx1 - 1] . '后';
- } else if ($day == $day1) {
- $data['name1'] = $term_name[$idx1];
- $data['name2'] = $term_name[$idx1];
- } else if ($day > $day1 && $day < $day2) {
-
-
- $data['name1'] = $term_name[$idx1];
- $data['name2'] = $term_name[$idx1] . '后';
- } else if ($day == $day2) {
- $data['name1'] = $term_name[$idx1 + 1];
- $data['name2'] = $term_name[$idx1 + 1];
- } else if ($day > $day2) {
- $data['name1'] = $term_name[$idx1 + 1];
- $data['name2'] = $term_name[$idx1 + 1] . '后';
- }
- return $data;
- }