VC陰陽曆轉化與二十四節氣

2021-08-24 19:19:27 字數 1102 閱讀 8738

地公轉軌道是乙個以太陽為乙個中心點的橢圓。

以近日點為0度,將地球公轉所掃過的角度每十五度的界點所在日期便是乙個節氣。

要計算某年某個節氣在這一年的日期。需要獲得這個節氣在這一年經歷的時間。於是就得下面這個陣列:

static const int terminfo = ;

這個陣列每乙個元素是各個節氣距離一年起點的分鐘數。由於是橢圓,所以資料不太規則,不是等差數列。

另乙個重要的資料是2023年一月六日兩點五分的正小寒點的天數。

static const double x_1900_1_6_2_5 = 693966.08680556;

再有乙個常量是地球公轉週期毫秒:

static const doubleone_year_loop = 365.2422;

函式如下:

uint calendar::sterm(uint y,uint n)

; //每個月底一年過去的天數

static const uint mdays = ; //

long temp = long(x_1900_1_6_2_5+365.2422*(ye-1900)+terminfo[n]/(60.0*24)); //過去的總天數

int days;

uint diff, y ,m, d;

days = 100 * (temp - temp/(3652425l/(3652425l-3652400l)) );

y = days / 36524;

days %= 36524;

m = 1 + days/3044; /* 月:[1..12] */

d = 1 + (days%3044)/100; /*日: [1..31] */

diff =y*365+y/4-y/100+y/400+mdays[m-1]+d-((m<=2&&((y&3)==0)&&((y%100)!=0||y%400==0))) - temp;

if( diff > 0 && diff >= d ) /* ~0.5% */

else

}else

else

}else}}

return d; //日期,由於一些特殊的需要,我只返回的d,m是月

二十四節氣

二十四節氣是我國勞動人民創造的輝煌文化,它能反映季節的變化,指導農事活動,影響著千家萬戶的衣食住行。由於2000年來,我國的主要政治活動中心多集中在黃河流域,二十四節氣也就是以這一帶的氣候 物候為依據建立起來的。由於我國幅員遼闊,地形多變,故二十四節氣對於很多地區來講只是一種參考。二十四節氣的來歷 ...

二十四節氣的來歷

二十四節氣起源於黃河流域。遠在春秋時代,就定出仲春 仲夏 仲秋和仲冬等四個節氣。以後不斷地改進與完善,到秦漢年間,二十四節氣已完全確立。西元前104年,由鄧平等制定的 太初歷 正式把二十四節氣訂於曆法,明確了二十四節氣的天文位置。太陽從黃經零度起,沿黃經每執行15度所經歷的時日稱為 乙個節氣 每年執...

二十四節氣對照表

二十四節氣對照表 節氣 公曆 春季立春 2月3 5日雨水2 月18 20日驚蟄3 月5 7日春分3 月20 22日清明4 月4 6日穀雨4 月19 21日 夏季立夏 5月5 7日小滿5 月20 22日芒種6 月5 7日夏至6 月21 22日小暑7 月6 8日大暑7 月22 24日 秋季立秋8 月7 ...