當前位置:首頁 » 編程語言 » sql農歷轉公歷
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql農歷轉公歷

發布時間: 2022-04-29 16:29:07

㈠ 求農歷轉公歷 公歷轉農歷 農歷轉公歷的程序 C++

void solar()
{
int nyear,nmonth,nday, gyear,gmonth,gday;
long int Ndata,c;
int wei=11,mt,nwhatday=0,runday,runmonth,nm,i,a,whatChunJie,ChunJieYear,zgwhatday,gyday,ms,cz,runt;
char YNrun;
system("cls");
cout<<"輸入需查詢的農歷年月日(例:2005 05 25)"<<endl;
cin>>nyear;
cin>>nmonth;
cin>>nday;
if(judge(gyear,gmonth,gday)==0){
cout<<"error date"<<endl;
return;
}
runday=(NongliData[nyear-1899]/0x1000)%0x10; //取出判斷閏月天數的值
runmonth=(NongliData[nyear-1899]/0x100)%0x10; //取出判斷是否閏月閏幾月的值
if(runday==1) runt=30;
else runt=29;

if(YNrun=='y')
nm=nmonth; //計算該月前面有幾個月
else nm=nmonth-1;//計算在該農歷年的第幾天
Ndata=NongliData[nyear-1899];
c=Ndata/0x10000;
wei=11;
while(wei>=0 && nm>0){
i=c>>wei&~(~0<<1);
if(i==1) mt=30;
else mt=29;
nwhatday=nwhatday+mt;
nm--;
wei--;
}
if(nmonth>runmonth && runmonth!=0){
nwhatday=nwhatday+runt;
}
nwhatday=nwhatday+nday;//計算該年春節在公歷年的第幾天
ChunJieYear=NongliData[nyear-1899];
a=ChunJieYear%0x100;
whatChunJie=gPastday[a/100]+a%100;
if((ChunJieYear%4==0 && ChunJieYear%100!=0 || ChunJieYear%400==0) && (a/100>2)) whatChunJie++;
zgwhatday=nwhatday+whatChunJie-1;//計算該公歷年一年總天數
if(nyear%4==0 && nyear%100!=0 || nyear%400==0){
gyday=366;
months[2]=29;
}
else{
gyday=365;
months[2]=28;
}
//換算出公歷年份
if(zgwhatday>gyday){
gyear=nyear+1;
zgwhatday=zgwhatday-gyday;
}
else gyear=nyear;

//換算出公歷月份
ms=1;
cz=zgwhatday;
gmonth=0;
while(ms<13){
cz=cz-months[ms];
if(cz<=0) {
gmonth++;
gday=cz+months[ms];
break;
}
gmonth++;
ms++;
}
cout<<endl<<"由農歷轉換成公歷查詢結果如下"<<endl<<endl;
cout<<"農歷:"<< nyear<<"年"<<nmonth<<"月"<<nday<<"日"<<endl;
cout<<endl<<"公歷: (公元)"<<gyear<<"年"<<gmonth<<"月"<<gday<<"日"<<endl;
getch();

}

㈡ 農歷和陽歷怎麼轉換

陽歷和陰歷之間是不能換算的,二者採用的計算方法不同,沒有特殊關系可以查詢,只能分別計算。

公歷是陽歷的一種,陽歷就是以地球繞太陽公轉的運動周期為基礎而制定的歷法。

中國農歷中每月的天數是根據月亮運動周期確立的,平均每月29.5306日。一年12個月只有354.3672天。而以地球圍繞太陽公轉時間確定的公(陽)歷,一年有365.2422天。這樣,按農歷計算,一年的天數比公歷就少了10.875天,差不多是11天;19年就少了209天。按農歷每月30天計,209天除以30是6.9666。也就是說,在19年中,農歷時間比公歷差不多少了7個月。為了補上7個月,農歷採取了設置閏月的方法——19年七閏。即在農歷的19年中,有12個每年12個月的平年,和7個每年13個月的閏年。閏年分別為第3、5、8、11、14、17、19年。這樣一來,19個公歷年的日數和19個農歷年的日數就差不多相等了
這樣一算,公歷所對應的農歷日子,每19年輪回一次。因此,人們每逢19的倍數生辰的時候,生日當天有可能既是農歷生日又是公歷生日。但因為農歷與公歷的准確天數都不是整數,農歷和公歷在19年中的天數也有細微的差別。經過幾十年甚至上百年的積累,當小數變成了整數時,兩種歷法生日才會完全重合;更多的時候是相差一天。另外值得一提的是,2月29日出生的人,在76歲那年,兩種歷法生日才有可能重合.我就是沒有重合的那一個。

㈢ 如何把農歷轉成陽歷,求演算法

看日歷啊!這個還真不好算,因為有潤月

㈣ 農歷和公歷是怎麼轉換的(怎麼算的)

你是要口算還是要用筆算?

告訴你,這樣子算不靠譜的,根本算不出來,涉及到的轉換不是簡單的幾個公式能得出,相反,它的轉換相當復雜。

如果有興趣編寫程序的,我可以提供轉換函數庫,調用一個函數就可以實現農歷與公歷的互轉了。

目前我已經完美地實現了轉換,如果需要,我可以提供。

㈤ 農歷日期和公歷日期怎麼轉換,

我做計算器的,這個就是轉化,你看哈嘛! //將日期換算為公歷的天數 private int toJulian(){ int jy=year; if(year<0) jy++; int jm=month; if(month>2) jm++; else{ jy--; jm+=13; } int jul=(int)(java.lang.Math.floor(365.25*jy) +java.lang.Math.floor(30.6001*jm)+day+1720995.0); int IGREG=15+31*(10+12*year); if(day+31*(month+12*year)>=IGREG){ int ja=(int)(0.01*jy); jul+=2-ja+(int)(0.25*ja); } return jul; } //從具體的天數得到日期 private void formJulian(int j){ int ja=j; int JGREG=2299161; if(j>=JGREG){ int jalpha=(int)(((float)(j-1867216)-0.25)/36524.25); ja+=1+jalpha-(int)(0.25*jalpha); } int jb=ja+1524;; int jc=(int)(6680.0+((float)(jb-2439870)-122.1)/365.25); int jd=(int)(362*jc+(0.25*jc)); int je=(int)((jb-jd)/30.6001); day=jb-jd-(int)(30.6001*je); month=je-1; if(month>12) month -=12; year=jc-4715; if(month>2) --year; if(year<=0) --year; } private int day; private int month; private int year;

㈥ 怎麼把農歷日期轉換為公歷

除了大家常用的萬年歷查找外,恐怕暫時沒有更方便快捷的方法了。
不過這里有一個法則:因為公歷是固定的,1、3、5、7、8、10、12月都是31天,2月28天(每4年閏一次月,像2008年夠4整除,閏2月29天),其餘的都是30天。對於農歷,它實質是陰歷,沿用的是太陰歷,這是一門很復雜的天文學知識,它包括24節氣。
記住:陽歷是1、3、5、7、8、10、臘,31天都不差,其餘都是30天,除了2月28;若是閏月則2月29天,只多一天。

㈦ 誰知道(陰歷轉陽歷)的SQL語句

SQL語句本身是沒法陰陽歷轉換的,SQL語句要藉助於電腦程序一起轉換,
陰陽歷轉換很麻煩,網路上可以搜到現成的對照表式的轉換
程序,前後只能50年的。