二分点,二至点,季节

本节介绍了天文年的二分点和二至点,并且列出了21世纪二分点和二至点的日期和时间表。

由于公历是天文年的近似表达,我们会在公历上标注四个天文年的关键点,二分点和二至点,简称二分二至:

下图显示了在二分点和二至点时刻的太阳位置,以及和 黄道平面和赤道平面的相对关系:

二分点和二至点
二分点和二至点

Fred Espenak 提供了21世纪二分点和二至点的日期和时间表(格林威治标准时间), 发表在 http://astropixels.com/ephemeris/soleq2001.html. 下面摘录了几个例子:

二分点和二至点:2001 到 2050
格林威治标准时间 (GMT)

年份        春分            夏至            秋分             冬至
2001  三月 20 13:31   六月 21 07:38   九月 22 23:05   十二月 21 19:22
2002  三月 20 19:16   六月 21 13:25   九月 23 04:56   十二月 22 01:15
2003  三月 21 01:00   六月 21 19:11   九月 23 10:47   十二月 22 07:04
2004  三月 20 06:49   六月 21 00:57   九月 22 16:30   十二月 21 12:42
2005  三月 20 12:34   六月 21 06:46   九月 22 22:23   十二月 21 18:35
...
2051  三月 20 15:58   六月 21 09:17   九月 23 01:26   十二月 21 22:33
2052  三月 19 21:56   六月 20 15:16   九月 22 07:16   十二月 21 04:18
2053  三月 20 03:46   六月 20 21:03   九月 22 13:05   十二月 21 10:09
2054  三月 20 09:35   六月 21 02:47   九月 22 19:00   十二月 21 16:10
2055  三月 20 15:28   六月 21 08:39   九月 23 00:48   十二月 21 21:56
...
2096  三月 19 14:03   六月 20 06:31   九月 21 22:55   十二月 20 20:46
2097  三月 19 19:49   六月 20 12:14   九月 22 04:37   十二月 21 02:38
2098  三月 20 01:38   六月 20 18:01   九月 22 10:22   十二月 21 08:19
2099  三月 20 07:17   六月 20 23:41   九月 22 16:10   十二月 21 14:04
2100  三月 20 13:04   六月 21 05:32   九月 22 22:00   十二月 21 19:51

顺便说一下,没有简单的方法可以计算二分点和二至点。 主要原因是天文年的长度不是恒定的(由于多种因素),长度相差最多有30分钟。 我们只能观察,或者用近似值预测二分点和二至点。

另外,地球轨道不是一个圆,运行的角速度也不是常数, 你不能将一个天文年分为4个等分来确定二分点和二至点的日期和时间。

我这里有个简单的Perl程序,可读取二分点和二至点数据,并验证他们的间隔时间。

#- Equinoxes-and-Solstices.pl
#- Copyright (c) 2003 HerongYang.com, All Rights Reserved.

  use Date::Parse;
  use Date::Format;
  use Math::Round;

  $meanYear = 365.2421896698 * 24 * 60 * 60;
  $meanHalf = round($meanYear/2);
  $meanQuarter = round($meanYear/4);
  
  @equinoxesAndSolstices = ();
  loadData();
  verifyData();

  exit;

sub verifyData {

  $l = @equinoxesAndSolstices;
  for ($i=4; $i<$l; $i++) {
    my $t = @equinoxesAndSolstices[$i];
    my $g = time2str("%Y-%m-%d %H:%M:%S %Z", $t, "GMT");
    my $z = time2str("%Y-%m-%d %H:%M:%S %Z", $t, "WST");
    print("GMT=$g, WST=$z\n");

    my $year = $t - @equinoxesAndSolstices[$i-4];
    my $half = $t - @equinoxesAndSolstices[$i-2];
    my $quarter = $t - @equinoxesAndSolstices[$i-1];

    my $diffYear = $year - $meanYear;
    my $diffHalf = $half - $meanHalf;
    my $diffQuarter = $quarter - $meanQuarter;
    print("   Year Mean=$meanYear, This Year=$year, Diff="
      .round($diffYear/60)." minutes\n");
    print("   Half Mean=$meanHalf, This Half=$half, Diff="
      .round($diffHalf/60/60)." hours\n");
    print("   Quarter Mean=$meanQuarter, This Quarter=$quarter, Diff="
      .round($diffQuarter/60/60)." hours\n");
  }
}  

sub loadData {
  $data = << "EOD";
2001= 20 13:31, 21 07:38, 22 23:05, 21 19:22
2002= 20 19:16, 21 13:25, 23 04:56, 22 01:15
2003= 21 01:00, 21 19:11, 23 10:47, 22 07:04
2004= 20 06:49, 21 00:57, 22 16:30, 21 12:42
2005= 20 12:34, 21 06:46, 22 22:23, 21 18:35
2006= 20 18:25, 21 12:26, 23 04:04, 22 00:22
2007= 21 00:07, 21 18:06, 23 09:51, 22 06:08
2008= 20 05:49, 21 00:00, 22 15:45, 21 12:04
2009= 20 11:44, 21 05:45, 22 21:18, 21 17:47
2010= 20 17:32, 21 11:28, 23 03:09, 21 23:38
2011= 20 23:21, 21 17:16, 23 09:05, 22 05:30
2012= 20 05:15, 20 23:08, 22 14:49, 21 11:12
2013= 20 11:02, 21 05:04, 22 20:44, 21 17:11
2014= 20 16:57, 21 10:52, 23 02:30, 21 23:03
2015= 20 22:45, 21 16:38, 23 08:20, 22 04:48
2016= 20 04:31, 20 22:35, 22 14:21, 21 10:45
2017= 20 10:29, 21 04:25, 22 20:02, 21 16:29
2018= 20 16:15, 21 10:07, 23 01:54, 21 22:22
2019= 20 21:58, 21 15:54, 23 07:50, 22 04:19
2020= 20 03:50, 20 21:43, 22 13:31, 21 10:03
2021= 20 09:37, 21 03:32, 22 19:21, 21 15:59
2022= 20 15:33, 21 09:14, 23 01:04, 21 21:48
2023= 20 21:25, 21 14:58, 23 06:50, 22 03:28
2024= 20 03:07, 20 20:51, 22 12:44, 21 09:20
2025= 20 09:02, 21 02:42, 22 18:20, 21 15:03
2026= 20 14:46, 21 08:25, 23 00:06, 21 20:50
2027= 20 20:25, 21 14:11, 23 06:02, 22 02:43
2028= 20 02:17, 20 20:02, 22 11:45, 21 08:20
2029= 20 08:01, 21 01:48, 22 17:37, 21 14:14
2030= 20 13:51, 21 07:31, 22 23:27, 21 20:09
2031= 20 19:41, 21 13:17, 23 05:15, 22 01:56
2032= 20 01:23, 20 19:09, 22 11:11, 21 07:57
2033= 20 07:23, 21 01:01, 22 16:52, 21 13:45
2034= 20 13:18, 21 06:45, 22 22:41, 21 19:35
2035= 20 19:03, 21 12:33, 23 04:39, 22 01:31
2036= 20 01:02, 20 18:31, 22 10:23, 21 07:12
2037= 20 06:50, 21 00:22, 22 16:13, 21 13:08
2038= 20 12:40, 21 06:09, 22 22:02, 21 19:01
2039= 20 18:32, 21 11:58, 23 03:50, 22 00:41
2040= 20 00:11, 20 17:46, 22 09:44, 21 06:33
2041= 20 06:07, 20 23:37, 22 15:27, 21 12:19
2042= 20 11:53, 21 05:16, 22 21:11, 21 18:04
2043= 20 17:29, 21 10:59, 23 03:07, 22 00:02
2044= 19 23:20, 20 16:50, 22 08:47, 21 05:43
2045= 20 05:08, 20 22:34, 22 14:33, 21 11:36
2046= 20 10:58, 21 04:15, 22 20:22, 21 17:28
2047= 20 16:52, 21 10:02, 23 02:07, 21 23:07
2048= 19 22:34, 20 15:54, 22 08:01, 21 05:02
2049= 20 04:28, 20 21:47, 22 13:42, 21 10:51
2050= 20 10:20, 21 03:33, 22 19:29, 21 16:39
2051= 20 15:58, 21 09:17, 23 01:26, 21 22:33
2052= 19 21:56, 20 15:16, 22 07:16, 21 04:18
2053= 20 03:46, 20 21:03, 22 13:05, 21 10:09
2054= 20 09:35, 21 02:47, 22 19:00, 21 16:10
2055= 20 15:28, 21 08:39, 23 00:48, 21 21:56
2056= 19 21:11, 20 14:29, 22 06:40, 21 03:52
2057= 20 03:08, 20 20:19, 22 12:23, 21 09:42
2058= 20 09:04, 21 02:03, 22 18:07, 21 15:24
2059= 20 14:44, 21 07:47, 23 00:03, 21 21:18
2060= 19 20:37, 20 13:44, 22 05:47, 21 03:00
2061= 20 02:26, 20 19:33, 22 11:31, 21 08:49
2062= 20 08:07, 21 01:10, 22 17:19, 21 14:42
2063= 20 13:59, 21 07:02, 22 23:08, 21 20:22
2064= 19 19:40, 20 12:47, 22 04:58, 21 02:10
2065= 20 01:27, 20 18:31, 22 10:41, 21 07:59
2066= 20 07:19, 21 00:16, 22 16:27, 21 13:45
2067= 20 12:55, 21 05:56, 22 22:20, 21 19:44
2068= 19 18:51, 20 11:55, 22 04:09, 21 01:34
2069= 20 00:44, 20 17:40, 22 09:51, 21 07:21
2070= 20 06:35, 20 23:22, 22 15:45, 21 13:19
2071= 20 12:36, 21 05:21, 22 21:39, 21 19:05
2072= 19 18:19, 20 11:12, 22 03:26, 21 00:54
2073= 20 00:12, 20 17:06, 22 09:14, 21 06:50
2074= 20 06:09, 20 22:59, 22 15:04, 21 12:36
2075= 20 11:48, 21 04:41, 22 21:00, 21 18:28
2076= 19 17:37, 20 10:35, 22 02:48, 21 00:12
2077= 19 23:30, 20 16:23, 22 08:35, 21 06:00
2078= 20 05:11, 20 21:58, 22 14:25, 21 11:59
2079= 20 11:03, 21 03:51, 22 20:15, 21 17:46
2080= 19 16:43, 20 09:33, 22 01:55, 20 23:31
2081= 19 22:34, 20 15:16, 22 07:38, 21 05:22
2082= 20 04:32, 20 21:04, 22 13:24, 21 11:06
2083= 20 10:08, 21 02:41, 22 19:10, 21 16:51
2084= 19 15:58, 20 08:39, 22 00:58, 20 22:40
2085= 19 21:53, 20 14:33, 22 06:43, 21 04:29
2086= 20 03:36, 20 20:11, 22 12:33, 21 10:24
2087= 20 09:27, 21 02:05, 22 18:27, 21 16:07
2088= 19 15:16, 20 07:57, 22 00:18, 20 21:56
2089= 19 21:07, 20 13:43, 22 06:07, 21 03:53
2090= 20 03:03, 20 19:37, 22 12:01, 21 09:45
2091= 20 08:40, 21 01:17, 22 17:49, 21 15:37
2092= 19 14:33, 20 07:14, 21 23:41, 20 21:31
2093= 19 20:35, 20 13:08, 22 05:30, 21 03:21
2094= 20 02:20, 20 18:40, 22 11:15, 21 09:11
2095= 20 08:14, 21 00:38, 22 17:10, 21 15:00
2096= 19 14:03, 20 06:31, 21 22:55, 20 20:46
2097= 19 19:49, 20 12:14, 22 04:37, 21 02:38
2098= 20 01:38, 20 18:01, 22 10:22, 21 08:19
2099= 20 07:17, 20 23:41, 22 16:10, 21 14:04
2100= 20 13:04, 21 05:32, 22 22:00, 21 19:51
EOD

  my @lines = split(/\n/, $data);
  foreach (@lines) {
    my ($year, $rest) = split(/=/, $_);
    my @tokens = split(/,/, $rest);
    if ($rest =~ /^ *([^,]+), *([^,]+), *([^,]+), *(.+) *$/s) {
      my $s1 = "$year-03-$1:00 GMT";
      my $s2 = "$year-06-$2:00 GMT";
      my $s3 = "$year-09-$3:00 GMT";
      my $s4 = "$year-12-$4:00 GMT";
      # print("$s1, $s2, $s3, $s4\n");

      my $t1 = str2time($s1);
      my $t2 = str2time($s2);
      my $t3 = str2time($s3);
      my $t4 = str2time($s4);
      # print("$t1, $t2, $t3, $t4\n");
      
      push(@equinoxesAndSolstices, ($t1, $t2, $t3, $t4));
    }
  }

}

如果你运行这个程序,你会得到下面的结果:

herong> perl Equinoxes-and-Solstices.pl 

GMT=2002-03-20 19:16:00 GMT, WST=2002-03-21 03:16:00 WST
   Year Mean=31556925.1874707, This Year=31556700, Diff=-4 minutes
   Half Mean=15778463, This Half=15451860, Diff=-91 hours
   Quarter Mean=7889231, This Quarter=7689240, Diff=-56 hours

GMT=2002-06-21 13:25:00 GMT, WST=2002-06-21 21:25:00 WST
   Year Mean=31556925.1874707, This Year=31556820, Diff=-2 minutes
   Half Mean=15778463, This Half=15703380, Diff=-21 hours
   Quarter Mean=7889231, This Quarter=8014140, Diff=35 hours

GMT=2002-09-23 04:56:00 GMT, WST=2002-09-23 12:56:00 WST
   Year Mean=31556925.1874707, This Year=31557060, Diff=2 minutes
   Half Mean=15778463, This Half=16105200, Diff=91 hours
   Quarter Mean=7889231, This Quarter=8091060, Diff=56 hours

GMT=2002-12-22 01:15:00 GMT, WST=2002-12-22 09:15:00 WST
   Year Mean=31556925.1874707, This Year=31557180, Diff=4 minutes
   Half Mean=15778463, This Half=15853800, Diff=21 hours
   Quarter Mean=7889231, This Quarter=7762740, Diff=-35 hours

GMT=2003-03-21 01:00:00 GMT, WST=2003-03-21 09:00:00 WST
   Year Mean=31556925.1874707, This Year=31556640, Diff=-5 minutes
   Half Mean=15778463, This Half=15451440, Diff=-91 hours
   Quarter Mean=7889231, This Quarter=7688700, Diff=-56 hours

GMT=2003-06-21 19:11:00 GMT, WST=2003-06-22 03:11:00 WST
   Year Mean=31556925.1874707, This Year=31556760, Diff=-3 minutes
   Half Mean=15778463, This Half=15702960, Diff=-21 hours
   Quarter Mean=7889231, This Quarter=8014260, Diff=35 hours

GMT=2003-09-23 10:47:00 GMT, WST=2003-09-23 18:47:00 WST
   Year Mean=31556925.1874707, This Year=31557060, Diff=2 minutes
   Half Mean=15778463, This Half=16105620, Diff=91 hours
   Quarter Mean=7889231, This Quarter=8091360, Diff=56 hours

GMT=2003-12-22 07:04:00 GMT, WST=2003-12-22 15:04:00 WST
   Year Mean=31556925.1874707, This Year=31556940, Diff=0 minutes
   Half Mean=15778463, This Half=15853980, Diff=21 hours
   Quarter Mean=7889231, This Quarter=7762620, Diff=-35 hours

GMT=2004-03-20 06:49:00 GMT, WST=2004-03-20 14:49:00 WST
   Year Mean=31556925.1874707, This Year=31556940, Diff=0 minutes
   Half Mean=15778463, This Half=15451320, Diff=-91 hours
   Quarter Mean=7889231, This Quarter=7688700, Diff=-56 hours

GMT=2004-06-21 00:57:00 GMT, WST=2004-06-21 08:57:00 WST
   Year Mean=31556925.1874707, This Year=31556760, Diff=-3 minutes
   Half Mean=15778463, This Half=15702780, Diff=-21 hours
   Quarter Mean=7889231, This Quarter=8014080, Diff=35 hours

GMT=2004-09-22 16:30:00 GMT, WST=2004-09-23 00:30:00 WST
   Year Mean=31556925.1874707, This Year=31556580, Diff=-6 minutes
   Half Mean=15778463, This Half=16105260, Diff=91 hours
   Quarter Mean=7889231, This Quarter=8091180, Diff=56 hours

GMT=2004-12-21 12:42:00 GMT, WST=2004-12-21 20:42:00 WST
   Year Mean=31556925.1874707, This Year=31556280, Diff=-11 minutes
   Half Mean=15778463, This Half=15853500, Diff=21 hours
   Quarter Mean=7889231, This Quarter=7762320, Diff=-35 hours

...
GMT=2099-03-20 07:17:00 GMT, WST=2099-03-20 15:17:00 WST
   Year Mean=31556925.1874707, This Year=31556340, Diff=-10 minutes
   Half Mean=15778463, This Half=15454500, Diff=-90 hours
   Quarter Mean=7889231, This Quarter=7685880, Diff=-56 hours

GMT=2099-06-20 23:41:00 GMT, WST=2099-06-21 07:41:00 WST
   Year Mean=31556925.1874707, This Year=31556400, Diff=-9 minutes
   Half Mean=15778463, This Half=15693720, Diff=-24 hours
   Quarter Mean=7889231, This Quarter=8007840, Diff=33 hours

GMT=2099-09-22 16:10:00 GMT, WST=2099-09-23 00:10:00 WST
   Year Mean=31556925.1874707, This Year=31556880, Diff=-1 minutes
   Half Mean=15778463, This Half=16102380, Diff=90 hours
   Quarter Mean=7889231, This Quarter=8094540, Diff=57 hours

GMT=2099-12-21 14:04:00 GMT, WST=2099-12-21 22:04:00 WST
   Year Mean=31556925.1874707, This Year=31556700, Diff=-4 minutes
   Half Mean=15778463, This Half=15862980, Diff=23 hours
   Quarter Mean=7889231, This Quarter=7768440, Diff=-34 hours

GMT=2100-03-20 13:04:00 GMT, WST=2100-03-20 21:04:00 WST
   Year Mean=31556925.1874707, This Year=31556820, Diff=-2 minutes
   Half Mean=15778463, This Half=15454440, Diff=-90 hours
   Quarter Mean=7889231, This Quarter=7686000, Diff=-56 hours

GMT=2100-06-21 05:32:00 GMT, WST=2100-06-21 13:32:00 WST
   Year Mean=31556925.1874707, This Year=31557060, Diff=2 minutes
   Half Mean=15778463, This Half=15694080, Diff=-23 hours
   Quarter Mean=7889231, This Quarter=8008080, Diff=33 hours

GMT=2100-09-22 22:00:00 GMT, WST=2100-09-23 06:00:00 WST
   Year Mean=31556925.1874707, This Year=31557000, Diff=1 minutes
   Half Mean=15778463, This Half=16102560, Diff=90 hours
   Quarter Mean=7889231, This Quarter=8094480, Diff=57 hours

GMT=2100-12-21 19:51:00 GMT, WST=2100-12-22 03:51:00 WST
   Year Mean=31556925.1874707, This Year=31556820, Diff=-2 minutes
   Half Mean=15778463, This Half=15862740, Diff=23 hours
   Quarter Mean=7889231, This Quarter=7768260, Diff=-34 hours

程序的输出表明:

Table of Contents

 说明与摘要

中国农历规则和日历原理

 日历的基本原理

 中国公历规则

二分点,二至点,季节

 太阳的位置和经度

 中国农历规则

 中国年历算法和程式

 中国年历 - 1901年至1910年

 中国年历 - 1911年至1920年

 中国年历 - 1921年至1930年

 中国年历 - 1931年至1940年

 中国年历 - 1941年至1950年

 中国年历 - 1951年至1960年

 中国年历 - 1961年至1970年

 中国年历 - 1971年至1980年

 中国年历 - 1981年至1990年

 中国年历 - 1991年至2000年

 中国年历 - 2001年至2010年

 中国年历 - 2011年至2020年

 中国年历 - 2021年至2030年

 中国年历 - 2031年至2040年

 中国年历 - 2041年至2050年

 中国年历 - 2051年至2060年

 中国年历 - 2061年至2070年

 中国年历 - 2071年至2080年

 中国年历 - 2081年至2090年

 中国年历 - 2091年至2100年

 参考文献

 PDF,EPUB,以及印刷版全版