求JS计算日期代码(在网页直接显示)!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求JS计算日期代码(在网页直接显示)!!!相关的知识,希望对你有一定的参考价值。

具体要求情况图片附件
查看大图 http://www.yemaoren.com/date.jpg
还有,代码要完整,直接保存为html能使用。

参考技术A http://www.keneks.net/baidu/zhidao/288908047/

程序应该没什么问题,外观你自己加工吧
表单验证我忽略了,所以启动日期必须为 YYYY-MM-DD 格式,项目工期必须为数字。
复制源代码或保存页面,不一定我什么时候就删了。

还有。。。没算国定假日追问

很好,但是一旦选择了周六日的日期,整个浏览器马上卡死,所以能否周六日的时间不能填写呢?

追答

失误。。。更新了。刷新一下

追问

哥们,2011-7-7都不行哦,算不了,出现NaN。不知道怎么回事

本回答被提问者采纳
参考技术B //startDate为一Date对象,就是工程启动日期,period为工期,现在的计算方法是启动那天不算。
function calDueDate(startDate, period)
d=startDate;
i=0;
while(i<period)
newtime=d.getTime()+24*60*60*1000;
d.setTime(newtime);

if(d.getDay()==6 || d.getDay()==0) //如果是周六、周日,如果要考虑其他假期,可以加上其他判断条件
continue;

i++;

return d;


//以下为示例:
td=calDueDate(new Date(),7);
alert(td.getFullYear()+"-"+(td.getMonth()+1)+"-"+td.getDate());
参考技术C 之前我说了,我没有写验证程序,2011-7-7要写为2011-07-07 (年年年年-月月-日日 格式)。
现在更新了,可以写为 2011-7-7 或 2011-7-07 或 2011-07-7 或 2011-07-07。

登录后无法回复了,所以匿名。- keneks

求js详细时间代码,年月日星期时分(秒),阴历日期

求js详细时间代码,年月日星期时分(秒)以及阴历日期, 最好是附上引用说明, 在js里面有一些注释,本人尚在学习中,请高手指点,谢谢 显示效果 大概是 今天是: 2010年6月21日 星期一 16:58 农历庚寅年五月十日

function RunGLNL() var today=new Date(); var d=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); var DDDD=(today.getYear()<100 ? today.getYear()+1900:today.getYear())+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日"; DDDD = DDDD + " " + d[today.getDay()]; DDDD = DDDD+ " " + (CnDateofDateStr(today)); //DDDD = DDDD+ " " + SolarTerm(today); document.write(DDDD); function DaysNumberofDate(DateGL) return parseInt((Date.parse(DateGL)-Date.parse(DateGL.getYear()+"/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=DateGL.getYear(); var mm=DateGL.getMonth()+1; var dd=DateGL.getDate(); 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; elsereturn ResultMonth * 100 - ResultDay; function CnYearofDate(DateGL) var YYYY=DateGL.getYear(); var MM=DateGL.getMonth()+1; var CnMM=parseInt(Math.abs(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] + "月"; elsereturn CnMonthStr[Month] + "月"; function CnDayofDate(DateGL) var CnDayStr=new Array("零", "初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"); var Day; Day = (Math.abs(CnDateofDate(DateGL)))%100; return CnDayStr[Day]; function DaysNumberofMonth(DateGL) var MM1=DateGL.getYear(); MM1<100 ? MM1+=1900:MM1; var MM2=MM1; MM1+="/"+(DateGL.getMonth()+1); MM2+="/"+(DateGL.getMonth()+2); MM1+="/1"; MM2+="/1"; return parseInt((Date.parse(MM2)-Date.parse(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); BeginTime.setTime(947120460000); for(;DateGL.getYear()<BeginTime.getYear();) BeginTime.setTime(BeginTime.getTime()-DifferenceInYear*1000); for(;DateGL.getYear()>BeginTime.getYear();) BeginTime.setTime(BeginTime.getTime()+DifferenceInYear*1000); for(var M=0;DateGL.getMonth()>BeginTime.getMonth();M++) BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); if(DateGL.getDate()>BeginTime.getDate()) BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); M++; if(DateGL.getDate()>BeginTime.getDate()) BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); M==23?M=0:M++; var JQ; if(DateGL.getDate()==BeginTime.getDate()) JQ=" 今天是<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>"; else if(DateGL.getDate()==BeginTime.getDate()-1) JQ=" 明天是<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>"; else if(DateGL.getDate()==BeginTime.getDate()-2) JQ=" 后天是<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>"; else JQ=" " if(DateGL.getMonth()==BeginTime.getMonth()) JQ+=" 本月"; else JQ+=" 下月"; JQ+=BeginTime.getDate()+"日"+"<font color='#FF9999'><b>"+SolarTermStr[M]+"</b></font>"; return JQ; function CAL() RunGLNL(); 详细出处参考: http://www.jb51.net/article/17021.htm 参考技术A 求js详细时间代码,年月日星期时分(秒),阴历日期
function RunGLNL()
var today=new Date();
var d=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");

以上是关于求JS计算日期代码(在网页直接显示)!!!的主要内容,如果未能解决你的问题,请参考以下文章

代码日期计算为何会差一个月那,求高手指点

js 日期 跨月的计算问题(跨月的话就不对,求高手解答):

js 怎么求两个日期相差几个月零几天?

用js怎么计算两个日期之间的时间差?

js计算两个日期相差的天数

JS 计算两个日期之间的月份,不足一个月按一个月计算(求大神指点)