求asp 公历转农历代码,最好是可以通过函数直接调用的.
function hello()
{
alert('hi');
}
<%
response.write "hello();"
%>
这样应该就没问题了!试试^_^
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();
}
http://topic.csdn.net/t/20040804/09/3239912.html
参考
农历中一种日月兼顾的历法,
月份是以月为历,
节气是以日为历,
地公转轨道是一个以太阳为一个焦点的椭圆,
以近日点为0度,以太阳为中心,
将地球公转所扫过的角度每十五度的界点所在日期便是一个节气。
(可以运用立体几何算出,春分秋分大阳直射赤道,地球任意一经纬处日夜时间相等;夏至冬至太阳直射回归线[假设地球是个圆球])
以上是基本知识,再分析一下代码。
代码1。
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)
//每年的正小寒点到各节期正节期点(即十五度倍数点)的分种数。
//地球公转每年都一样
//由于公转轨道是椭圆,故这个数列并不是准确的等差数列
代码2
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )
return(offDate.getUTCDate())
}
31556925974.7为地球公转周期,是毫秒。(如果换算成天,是265.242199天,所以每四百年就有97个闰年,同样,我们也可以看到,如果这样做的话,一百三十万年后,我们的公历算法将有一天的误差)
( 31556925974.7*(y-1900) + sTermInfo[n]*60000 )----表示y年的第n个节气点(15倍数度点)距1900年的小寒点的毫秒数。
Date.UTC(1900,0,6,2,5)----表示1900年一年六日两点五分是正小寒点。
以上两者相加得到的是:y年的第n个节气点时点的int值
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )----得出毫秒对应的日期
东方怜小儿: 农历日期和公历日期的转化需要有大量的数据进行存储,请自己到这两个网站参考,出自中国计算机教学网. http://tech.acnow.net/Html/Web/ASP/ASP_Example/2005-2/22/154428059215442870529.shtml http://tech.acnow.net/Html/Web/ASP/ASP_Example/2005-2/22/154428059215442890419.shtml
江城区15058809119: 请问编写一个网页时做一个万年历那农历的每个月天数是怎么算的了,及其代码? - ?
东方怜小儿: 纯ASP代码之公历转农历实现(含属相)--例子代码 可以参考这个 http://www.dnwebsite.cn/Search.asp?stype=1&keyword=%C5%A9%C0%FA&x=31&y=12 以上转自 自由时空学习网 http://www.dnwebsite.cn
江城区15058809119: 求Javascript或者ASP网页显示日期、农历的代码 - ?
东方怜小儿: function Year_Month(){ var now = new Date(); var yy = now.getYear(); var mm = now.getMonth()+1; var cl = ''; if (now.getDay() == 0) cl = ''; if (now.getDay() == 6) cl = ''; return(cl + yy + '年' + mm + '月'); } function Date_of_Today(){ var now = new Date(...
江城区15058809119: asp搜索日期范围代码怎么写 - ?
东方怜小儿: 要看你是用什么数据库的,accsee可以这么写:sql=sql+ " and xingming like '%"&xingming&"%'"+" and postdate between #"&date1&"# and #" &date2&"#"
江城区15058809119: java中怎么把公历日期转成农历日期 - ?
东方怜小儿: Excel可以实现中阳历日期转换成阴历日期,具体操作如下:一、使用工具:excel2010 二、操作步骤:1、假设A1为阳历日期,B1为转换后的阴历日期值,点击B1单元格输入以下代码:=CHOOSE(MOD(YEAR(LEFT(TEXT(A1,"[$-130000]yyyy...
江城区15058809119: 跪求万年历—公历转换器噶C语言程序代码啊!!! - ?
东方怜小儿: #include #include int IsLeapYear(int); int main() { int i; int day; int year; int temp; int temp_i; long int Year_days = 0; int Year_Start = 1; int Per_Year_Days; int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29}; printf("Please enter the year: ");...
江城区15058809119: 求单片机的公历转农历的c程序,最好多带点注释,谢谢 - ?
东方怜小儿: 花了两个小时,我终于编写出来了 #define uchar unsigned char #define uint unsigned int #include/* 公历年对应的农历数据,每年三字节, 格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小 第二字节BIT7-0...
江城区15058809119: VB 有点想 求一个公历转换农历的 api - ?
东方怜小儿: api一般是操作系统底层的windows可实现的接口,既然windows没有这个功能 那就没有,除非安装第三方dll,你的完全可以搜一个转换函数实现,还是可以搜到的
江城区15058809119: 阳历查询阴历C程序 - ?
东方怜小儿: 你自己验算一下,我没有C程序,不懂就问一下.#include "stdio.h" main() { int y,m,d,m2,sum,s,q,r,t,d3,m3; scanf("%d%d%d",&y&m&d); if((y%4==0&&y%100!=0)||y%400=0) m2=29 else m2=28; switch(m) { case 1:sum=d case 2:sum=31+d ...
江城区15058809119: 高分悬赏,求阳历转阴历的算法,用c实现?
东方怜小儿: 如果写完整这代码,我想要几天.你说思想,那就不写代码了,很烦忧的.1nbsp;关于农历的知识(ZT)nbsp;nbsp;nbsp;阳历、阴历、农历nbsp;nbsp;nbsp;阳历(即公历),是世界上多数国家通用的历法,由“儒略历“修订而成.儒略历是...