高手帮解决一个JS显示农历时间代码错误问题,真的很谢谢!

高手帮解决一个JS显示农历时间代码错误问题,真的很谢谢!,第1张

function RunGLNL(){

var today=new Date();

var d=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");

var DDDD=(todaygetYear()<100

todaygetYear()+1900:todaygetYear())+"年"+(todaygetMonth()+1)+"月"+todaygetDate()+"日";

DDDD = DDDD + " " + d[todaygetDay()];

DDDD = DDDD+ " " + (CnDateofDateStr(today));

//DDDD = DDDD+ " " + SolarTerm(today);

documentwrite(DDDD);

}

function DaysNumberofDate(DateGL){

return parseInt((Dateparse(DateGL)-Dateparse(DateGLgetYear()+"/1/1"))/86400000)+1;

}

function CnDateofDate(DateGL){

var CnData=new Array(

0x16,0x2a,0xda,0x00,0x83,0x49,0xb6,0x05,0x0e,0x64,0xbb,0x00,0x19,0xb2,0x5b,0x00,

0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02,

0x15,0x55,0xaa,0x00,0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00,

0x86,0xe4,0xae,0x05,0x11,0xea,0x56,0x00,0x1b,0x6d,0x2a,0x00,0x88,0x5a,0xaa,0x04,

0x14,0xad,0x55,0x00,0x81,0xaa,0xd5,0x09,0x0b,0x52,0xea,0x00,0x16,0xa9,0x6d,0x00,

0x84,0xa9,0x5d,0x06,0x0f,0xd4,0xae,0x00,0x1a,0xea,0x4d,0x00,0x87,0xba,0x55,0x04

);

var CnMonth=new Array();

var CnMonthDays=new Array();

var CnBeginDay;

var LeapMonth;

var Bytes=new Array();

var I;

var CnMonthData;

var DaysCount;

var CnDaysCount;

var ResultMonth;

var ResultDay;

var yyyy=DateGLgetYear();

var mm=DateGLgetMonth()+1;

var dd=DateGLgetDate();

if(yyyy<100) yyyy+=1900;

if ((yyyy < 1997) || (yyyy > 2020)){

return 0;

}

Bytes[0] = CnData[(yyyy - 1997) 4];

Bytes[1] = CnData[(yyyy - 1997) 4 + 1];

Bytes[2] = CnData[(yyyy - 1997) 4 + 2];

Bytes[3] = CnData[(yyyy - 1997) 4 + 3];

if ((Bytes[0] & 0x80) != 0) {CnMonth[0] = 12;}

else {CnMonth[0] = 11;}

CnBeginDay = (Bytes[0] & 0x7f);

CnMonthData = Bytes[1];

CnMonthData = CnMonthData << 8;

CnMonthData = CnMonthData | Bytes[2];

LeapMonth = Bytes[3];

for (I=15;I>=0;I--){

CnMonthDays[15 - I] = 29;

if (((1 << I) & CnMonthData) != 0 ){

CnMonthDays[15 - I]++;}

if (CnMonth[15 - I] == LeapMonth ){

CnMonth[15 - I + 1] = - LeapMonth;}

else{

if (CnMonth[15 - I] < 0 ){CnMonth[15 - I + 1] = - CnMonth[15 - I] + 1;}

else {CnMonth[15 - I + 1] = CnMonth[15 - I] + 1;}

if (CnMonth[15 - I + 1] > 12 ){ CnMonth[15 - I + 1] = 1;}

}

}

DaysCount = DaysNumberofDate(DateGL) - 1;

if (DaysCount <= (CnMonthDays[0] - CnBeginDay)){

if ((yyyy > 1901) && (CnDateofDate(new Date((yyyy - 1)+"/12/31")) < 0)){

ResultMonth = - CnMonth[0];}

else {ResultMonth = CnMonth[0];}

ResultDay = CnBeginDay + DaysCount;

}

else{

CnDaysCount = CnMonthDays[0] - CnBeginDay;

I = 1;

while ((CnDaysCount < DaysCount) && (CnDaysCount + CnMonthDays[I] < DaysCount)){

CnDaysCount+= CnMonthDays[I];

I++;

}

ResultMonth = CnMonth[I];

ResultDay = DaysCount - CnDaysCount;

}

if (ResultMonth > 0){

return ResultMonth 100 + ResultDay;}

else{return ResultMonth 100 - ResultDay;}

}

function CnYearofDate(DateGL){

var YYYY=DateGLgetYear();

var MM=DateGLgetMonth()+1;

var CnMM=parseInt(Mathabs(CnDateofDate(DateGL))/100);

if(YYYY<100) YYYY+=1900;

if(CnMM>MM) YYYY--;

YYYY-=1864;

return CnEra(YYYY)+"年";

}

function CnMonthofDate(DateGL){

var CnMonthStr=new Array("零","正","二","三","四","五","六","七","八","九","十","十一","腊");

var Month;

Month = parseInt(CnDateofDate(DateGL)/100);

if (Month < 0){return "闰" + CnMonthStr[-Month] + "月";}

else{return CnMonthStr[Month] + "月";}

}

function CnDayofDate(DateGL){

var CnDayStr=new Array("零",

"初一", "初二", "初三", "初四", "初五",

"初六", "初七", "初八", "初九", "初十",

"十一", "十二", "十三", "十四", "十五",

"十六", "十七", "十八", "十九", "二十",

"廿一", "廿二", "廿三", "廿四", "廿五",

"廿六", "廿七", "廿八", "廿九", "三十");

var Day;

Day = (Mathabs(CnDateofDate(DateGL)))%100;

return CnDayStr[Day];

}

function DaysNumberofMonth(DateGL){

var MM1=DateGLgetYear();

MM1<100 MM1+=1900:MM1;

var MM2=MM1;

MM1+="/"+(DateGLgetMonth()+1);

MM2+="/"+(DateGLgetMonth()+2);

MM1+="/1";

MM2+="/1";

return parseInt((Dateparse(MM2)-Dateparse(MM1))/86400000);

}

function CnEra(YYYY){

var Tiangan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");

//var Dizhi=new Array("子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)","巳(蛇)",

//"午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");

var Dizhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");

return Tiangan[YYYY%10]+Dizhi[YYYY%12];

}

function CnDateofDateStr(DateGL){

if(CnMonthofDate(DateGL)=="零月") return " 请调整您的计算机日期!";

else return "农历:"+CnYearofDate(DateGL)+ " " + CnMonthofDate(DateGL) + CnDayofDate(DateGL);

}

function SolarTerm(DateGL){

var SolarTermStr=new Array(

"小寒","大寒","立春","雨水","惊蛰","春分",

"清明","谷雨","立夏","小满","芒种","夏至",

"小暑","大暑","立秋","处暑","白露","秋分",

"寒露","霜降","立冬","小雪","大雪","冬至");

var DifferenceInMonth=new Array(

1272060,1275495,1281180,1289445,1299225,1310355,

1321560,1333035,1342770,1350855,1356420,1359045,

1358580,1355055,1348695,1340040,1329630,1318455,

1306935,1297380,1286865,1277730,1274550,1271556);

var DifferenceInYear=31556926;

var BeginTime=new Date(1901/1/1);

BeginTimesetTime(947120460000);

for(;DateGLgetYear()<BeginTimegetYear();){

BeginTimesetTime(BeginTimegetTime()-DifferenceInYear1000);

}

for(;DateGLgetYear()>BeginTimegetYear();){

BeginTimesetTime(BeginTimegetTime()+DifferenceInYear1000);

}

for(var M=0;DateGLgetMonth()>BeginTimegetMonth();M++){

BeginTimesetTime(BeginTimegetTime()+DifferenceInMonth[M]1000);

}

if(DateGLgetDate()>BeginTimegetDate()){

BeginTimesetTime(BeginTimegetTime()+DifferenceInMonth[M]1000);

M++;

}

if(DateGLgetDate()>BeginTimegetDate()){

BeginTimesetTime(BeginTimegetTime()+DifferenceInMonth[M]1000);

M==23M=0:M++;

}

var JQ;

if(DateGLgetDate()==BeginTimegetDate()){

JQ="  今天是<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>";

}

else if(DateGLgetDate()==BeginTimegetDate()-1){

JQ="  明天是<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>";

}

else if(DateGLgetDate()==BeginTimegetDate()-2){

JQ="  后天是<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>";

}

else{

JQ=" "

if(DateGLgetMonth()==BeginTimegetMonth()){

JQ+="  本月";

}

else{

JQ+="  下月";

}

JQ+=BeginTimegetDate()+"日"+"<font color='#FF9999'><b>"+SolarTermStr[M]+"</b></font>";

}

return JQ;

}

function CAL()

{}

RunGLNL();

时间戳改时间,简单点 alert((new Date("1412849746"))toLocaleDateString())

datesetDate(dategetDate() + 60);//这里的60就是你要加的天数,减也可以。年、月会相应加上去,值得注意的是dategetMonth()得到的月份比实际月份小1,所以实际月份是(dategetMonth()+1)

它的getMilliSeconds也是获取当前时间的毫秒数。所以我们需要自己做一个转换。 可以用getMinutes和getSeconds先获取到相应的分和秒,然后将分601000+秒 1000即可转换了。

件,下载My97DatePicker后解压会得到很多文件,有国际化、皮肤 和一些配置的文件,这些文件会互相调用,不能单独工作,你页面上的写法是正确的,我想应该是js类库缺少文件或者是文件的相对位置被改变了。

按照你引入的js位置来看在datepicker目录下应该还有lang文件夹、skin文件夹 以及calendarjs、WdatePickerjs和configjs文件才对。你看看你的有吗

已测试成功

<html>

<input type="text" id="prev">

<input type="text" id="now">

<input type="text" id="next">

</html>

<script type="text/javascript">

windowonload = function(){

getYear();

};

function getYear(){

function getEle(id){

return documentgetElementById(id);

}

var inputPrev = getEle("prev"),

inputNow = getEle("now"),

inputNext = getEle("next"),

d = new Date(),

nowYear = +dgetFullYear();

inputNow = nowYear;

inputPrevvalue = nowYear - 1;

inputNextvalue = nowYear + 1;

}

</script>

年 月 日 时 分 秒 星期 。 如果按楼主要求,星期换下就可以,也就是

var ndate = years+"年"+month+"月"+days+"日 "+hours+":"+minutes+":"+seconds+" "+week;

这句 ,换成

var ndate = years+"年"+month+"月"+days+"日 "+week+" "+hours+":"+minutes+":"+seconds;

<html>

<head>

<title></title>

<script language="javascript">

function getCurDate()

{

var d = new Date();

var week;

switch (dgetDay()){

case 1: week="星期一"; break;

case 2: week="星期二"; break;

case 3: week="星期三"; break;

case 4: week="星期四"; break;

case 5: week="星期五"; break;

case 6: week="星期六"; break;

default: week="星期天";

}

var years = dgetYear();

var month = add_zero(dgetMonth()+1);

var days = add_zero(dgetDate());

var hours = add_zero(dgetHours());

var minutes = add_zero(dgetMinutes());

var seconds=add_zero(dgetSeconds());

var ndate = years+"年"+month+"月"+days+"日 "+hours+":"+minutes+":"+seconds+" "+week;

divTinnerHTML= ndate;

}

function add_zero(temp)

{

if(temp<10) return "0"+temp;

else return temp;

}

setInterval("getCurDate()",100);

</script>

</head>

<body>

<div id="divT"></div>

</body>

</html>

var myDate = new Date();

myDatetoLocaleDateString();可以获取当前日期

myDatetoLocaleTimeString(); 可以获取当前时间

扩展:

myDategetYear(); //获取当前年份(2位)

myDategetFullYear(); //获取完整的年份(4位,1970-)

myDategetMonth(); //获取当前月份(0-11,0代表1月)

myDategetDate(); //获取当前日(1-31)

myDategetDay(); //获取当前星期X(0-6,0代表星期天)

myDategetTime(); //获取当前时间(从197011开始的毫秒数)

myDategetHours(); //获取当前小时数(0-23)

myDategetMinutes(); //获取当前分钟数(0-59)

myDategetSeconds(); //获取当前秒数(0-59)

myDategetMilliseconds(); //获取当前毫秒数(0-999)

myDatetoLocaleString( ); //获取日期与时间

获取 日期 时间 星期几

var d = new Date();

var datestr = "今天是: " +dgetFullYear() + "-" +(dgetMonth()+1) + "-" + dgetDate() + " " + dgetHours() + ":" + dgetMinutes() + ":" + dgetSeconds() + " 星期"+"日一二三四五六"charAt(dgetDay())

// 判断闰年

DateprototypeisLeapYear = function()

{

return (0==thisgetYear()%4&&((thisgetYear()%100!=0)||(thisgetYear()%400==0)));

}

// 日期格式化

// 格式 YYYY/yyyy/YY/yy 表示年份

// MM/M 月份

// W/w 星期

// dd/DD/d/D 日期

// hh/HH/h/H 时间

// mm/m 分钟

// ss/SS/s/S 秒

//---------------------------------------------------

DateprototypeFormat = function(formatStr)

{

var str = formatStr;

var Week = ['日','一','二','三','四','五','六'];

str=strreplace(/yyyy|YYYY/,thisgetFullYear());

str=strreplace(/yy|YY/,(thisgetYear() % 100)>9 (thisgetYear() % 100)toString():'0' + (thisgetYear() % 100));

其实我也不懂这个算法,网上粘贴的,我觉得可以不去深究这个公式,反正有现成代码:

设:公元年数-1977(或1901)=4Q+R

则:阴历日期=14Q+106(R+1)+年内日期序数-295n

(注:式中Q、R、n均为自然数,R<4)

例:1994年5月7日的阴历日期为:

1994-1977=17=4×4+1

故:Q=4,R=1 则:5月7日的阴历日期为:

14×4+106(1+1)+(31+28+31+30+7)-295n

=2042- 295n

然后用295去除2042得商数6272,6即是n值,余数27即是阴历二十七日。

以上就是关于高手帮解决一个JS显示农历时间代码错误问题,真的很谢谢!全部的内容,包括:高手帮解决一个JS显示农历时间代码错误问题,真的很谢谢!、js如何获得系统时间年月日时分秒、急求js版农历日期选择器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9703048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存