当前位置:首页 » 编程语言 » 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年的。