春分的计算&清明节的确定

      //获取当年春分日期   注意取整,向下舍入

     public static DateTime GETChunfeng(DateTime dt)
        {
            //[92×0.2422+20.646]-[92/4]=42-23=19
            double year = double.Parse(dt.Year.ToString().Substring(2, 2));
            int val1 = Convert.ToInt32(Math.Floor(year * 0.2422d + 20.646));
            int ss = val1 - Convert.ToInt32(Math.Floor((year) / 4));
            return new DateTime(dt.Year, 3, ss);
        }

 

       //判断是否为清明节
        public static bool isqingming(DateTime dt)
        {
            //清明节
            //GETChunfeng(dt).AddDays(15)

            if (GETChunfeng(dt).AddDays(15) == dt)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


 

 

清明节 

节日时间

斗指乙,太阳黄经15°,公历4月5日前后

 

 

春分天文现象

相关资料:来源百度百科

年公历3月20日左右,太阳位于黄经0°(春分点)时,为春分。这一天,太阳几乎直射地球赤道,全球各地几乎昼夜等长(不考虑大气对太阳光的折射与晨昏蒙影)。春分过后,太阳直射点继续由赤道向北半球推移,北半球各地开始昼长夜短,即一天中白昼长于黑夜;南半球各地开始昼短夜长,即一天中白昼短于黑夜。故春分也称升分。

而在南北两极,春分这一天,太阳整日都在地平线上。此后,随着太阳直射点的继续北移,北极附近开始为期6个月的极昼,范围逐渐扩大;南极附近开始为期6个月的极夜,范围逐渐扩大。 [3] 

值得注意的是:北半球各地从冬至开始白昼越来越长,但是从春分开始白昼才比黑夜长;从夏至那天开始白昼越来越短,但是从秋分开始白昼才比黑夜短。

原因是:冬至日,太阳直射南回归线,北半球各地白昼最短,随后太阳直射点开始北移,北半球各地白昼越来越长。春分过后,太阳直射点移到北半球,北半球开始白昼长于黑夜。到了夏至日,太阳直射北回归线,北半球各地白昼最长,随后太阳直射点开始南移,北半球各地白昼越来越短。秋分过后,太阳直射点移到南半球,北半球开始白昼短于黑夜。

日期计算

[Y*D+C]-L

公式解读:年数的后2位乘0.2422加20.646取整数减闰年数,21世纪春分的C值=20.646。

举例说明:2092年春分日期=[92×0.2422+20.646]-[92/4]=42-23=19,3月19日是春分。

例外:2084年的计算结果加1日。 [3]

你可能感兴趣的:(ASP.NET)