




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮北师范大学 08网络工程cc软件系列课程设计基于JavaScript(网页脚本语言)编写的万年历班 级 学 号 姓 名 指导教师 成 绩_2010年 06 月 18 日目录摘要一、引言1应用背景2可行性分析3研究路线及内容二、系统开发工具三、系统设计(详细设计) 四、结束语 1.总结 2.参考文献摘要极品万年历,带有带有电子时钟,可看不同时区时间,阳历、农历同步显示,鼠标指出,天干地支计时即出。1、 引言 1,、应用背景随着科技的发展,人们渴望着把现实生活中的林林总总都搬到电脑上,大到工程设计,小到极品万年历。2、 可行性分析方便查看农历重要的日子,方便外出办公校正不同区时3、 研究路线及内容通过用JavaScript语言编写代码,并利用文本保存为HTTP或HTML格式。并试图实现一下内容:1、 可看阳历;2、 可看农历;3、 可看时间;4、 可看天干地支计时;5、 可划分区时。2、 系统开发工具JavaScript网页脚本语言,IE、360安全浏览器或其他浏览器。3、 系统设计 1、程序源码 cc万年历 0x8; i=1) sum += (lunarInfoy-1900 & i)? 1: 0return(sum+leapDays(y)/= 传回农历 y年闰月的天数function leapDays(y) if(leapMonth(y) return(lunarInfoy-1900 & 0x10000)? 30: 29)else return(0)/= 传回农历 y年闰哪个月 1-12 , 没闰传回 0function leapMonth(y) return(lunarInfoy-1900 & 0xf)/= 传回农历 y年m月的总天数function monthDays(y,m) return( (lunarInfoy-1900 & (0x10000m)? 30: 29 )/= 算出农历, 传入日期物件, 传回农历日期物件/ 该物件属性有 .year .month .day .isLeap .yearCyl .dayCyl .monCylfunction Lunar(objDate) var i, leap=0, temp=0var baseDate = new Date(1900,0,31)var offset = (objDate - baseDate)/86400000this.dayCyl = offset + 40this.monCyl = 14for(i=1900; i0; i+) temp = lYearDays(i)offset -= tempthis.monCyl += 12if(offset0) offset += temp;i-;this.monCyl -= 12this.year = ithis.yearCyl = i-1864leap = leapMonth(i) /闰哪个月this.isLeap = falsefor(i=1; i0; i+) /闰月if(leap0 & i=(leap+1) & this.isLeap=false) -i; this.isLeap = true; temp = leapDays(this.year); else temp = monthDays(this.year, i); /解除闰月if(this.isLeap=true & i=(leap+1) this.isLeap = falseoffset -= tempif(this.isLeap = false) this.monCyl +if(offset=0 & leap0 & i=leap+1)if(this.isLeap) this.isLeap = false; else this.isLeap = true; -i; -this.monCyl;if(offset0) offset += temp; -i; -this.monCyl; this.month = ithis.day = offset + 1/=传回国历 y年某m+1月的天数function solarDays(y,m) if(m=1)return(y%4 = 0) & (y%100 != 0) | (y%400 = 0)? 29: 28)elsereturn(solarMonthm)/= 传入 offset 传回干支, 0=甲子function cyclical(num) return(Gannum%10+Zhinum%12)/= 月历属性function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) this.isToday = false;/国历this.sYear = sYear;this.sMonth = sMonth;this.sDay = sDay;this.week = week;/农历this.lYear = lYear;this.lMonth = lMonth;this.lDay = lDay;this.isLeap = isLeap;/干支this.cYear = cYear;this.cMonth = cMonth;this.cDay = cDay;this.color = ;this.lunarFestival = ; /农历节日this.solarFestival = ; /国历节日this.solarTerms = ; /节气/= 某年的第n个节气为几日(从0小寒起算)function sTerm(y,n) var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfon*60000 ) + Date.UTC(1900,0,6,2,5) )return(offDate.getUTCDate()/= 传回月历物件 (y年,m+1月)function calendar(y,m) var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2var lDPOS = new Array(3)var n = 0var firstLM = 0sDObj = new Date(y,m,1) /当月一日日期this.length = solarDays(y,m) /国历当月天数this.firstWeek = sDObj.getDay() /国历当月1日星期几for(var i=0;ilX) sDObj = new Date(y,m,i+1) /当月一日日期lDObj = new Lunar(sDObj) /农历lY = lDObj.year /农历年lM = lDObj.month /农历月lD = lDObj.day /农历日lL = lDObj.isLeap /农历是否闰月lX = lL? leapDays(lY): monthDays(lY,lM) /农历当月最後一天if(n=0) firstLM = lMlDPOSn+ = i-lD+1/sYear,sMonth,sDay,week,/lYear,lMonth,lDay,isLeap,/cYear,cMonth,cDaythisi = new calElement(y, m+1, i+1, nStr1(i+this.firstWeek)%7,lY, lM, lD+, lL,cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl+) )if(i+this.firstWeek)%7=0) thisi.color = red /周日颜色if(i+this.firstWeek)%14=13) thisi.color = red /周休二日颜色/节气tmp1=sTerm(y,m*2 )-1tmp2=sTerm(y,m*2+1)-1thistmp1.solarTerms = solarTermm*2thistmp2.solarTerms = solarTermm*2+1if(m=3) thistmp1.color = red /清明颜色/国历节日for(i in sFtv)if(sFtvi.match(/(d2)(d2)(s*)(.+)$/)if(Number(RegExp.$1)=(m+1) thisNumber(RegExp.$2)-1.solarFestival += RegExp.$4 + if(RegExp.$3=*) thisNumber(RegExp.$2)-1.color = red/月周节日for(i in wFtv)if(wFtvi.match(/(d2)(d)(d)(s*)(.+)$/)if(Number(RegExp.$1)=(m+1) tmp1=Number(RegExp.$2)tmp2=Number(RegExp.$3)this(this.firstWeektmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek.solarFestival += RegExp.$5 + /农历节日for(i in lFtv)if(lFtvi.match(/(d2)(.2)(s*)(.+)$/) tmp1=Number(RegExp.$1)-firstLMif(tmp1=-11) tmp1=1if(tmp1 =0 & tmp1= 0 & tmp21874 & SY1908 & SY1911 & SY1949) yDisplay = 共和国 + (SY-1949)=1)?元:SY-1949)GZ.innerHTML = yDisplay +年 农历 + cyclical(SY-1900+36) + 年 【+Animals(SY-4)%12+】;YMBG.innerHTML = + SY + + monthNameSM;for(i=0;i-1 & sDcld.length) /日期内sObj.innerHTML = sD+1;if(cldsD.isToday) sObj.className = todyaColor; /今日颜色sObj.style.color = cldsD.color; /国定假日颜色if(cldsD.lDay=1) /显示农历月lObj.innerHTML = +(cldsD.isLeap?闰:) + cldsD.lMonth + 月 + (monthDays(cldsD.lYear,cldsD.lMonth)=29?小:大)+;else /显示农历日lObj.innerHTML = cDay(cldsD.lDay);s=cldsD.lunarFestival;if(s.length0) /农历节日if(s.length6) s = s.substr(0, 4)+;s = s.fontcolor(red);else /国历节日s=cldsD.solarFestival;if(s.length0) size = (s.charCodeAt(0)0 & s.charCodeAt(0)size+2) s = s.substr(0, size)+;s = s.fontcolor(blue);else /廿四节气s=cldsD.solarTerms;if(s.length0) s = s.fontcolor(limegreen);if(s.length0) lObj.innerHTML = s;else /非日期sObj.innerHTML = ;lObj.innerHTML = ;function changeCld() var y,m;y=CLD.SY.selectedIndex+1900;m=CLD.SM.selectedIndex;drawCld(y,m);function pushBtm(K) switch (K)case YU :if(CLD.SY.selectedIndex0) CLD.SY.selectedIndex-;break;case YD :if(CLD.SY.selectedIndex0) CLD.SM.selectedIndex-;else CLD.SM.selectedIndex=11;if(CLD.SY.selectedIndex0) CLD.SY.selectedIndex-;break;case MD :if(CLD.SM.selectedIndex11) CLD.SM.selectedIndex+;else CLD.SM.selectedIndex=0;if(CLD.SY.selectedIndex149) CLD.SY.selectedIndex+;break;default :CLD.SY.selectedIndex=tY-1900;CLD.SM.selectedIndex=tM;changeCld();var Today = new Date();var tY = Today.getFullYear();var tM = Today.getMonth();var tD = Today.getDate();/var width = 130;var offsetx = 2;var offsety = 16;var x = 0;var y = 0;var snow = 0;var sw = 0;var cnt = 0;var dStyle;document.onmousemove = mEvn;/显示详细日期资料function mOvr(v) var s,festival;var sObj=eval(SD+ v);var d=sObj.innerHTML-1;/sYear,sMonth,sDay,week,/lYear,lMonth,lDay,isLeap,/cYear,cMonth,cDayif(sObj.innerHTML!=) sObj.style.cursor = s-resize;if(cldd.solarTerms = & cldd.solarFestival = & cldd.lunarFestival = )festival = ;elsefestival = +cldd.solarTerms + + cldd.solarFestival + + cldd.lunarFestival+;s= +cldd.sYear+ 年 +cldd.sMonth+ 月 +cldd.sDay+ 日星期+cldd.week+农历+(cldd.isLeap?闰 : )+cldd.lMonth+ 月 +cldd.lDay+ 日+cldd.cYear+年 +cldd.cMonth+月 +cldd.cDay + 日+ festival +;document.alldetail.innerHTML = s;if (snow = 0) dStyle.left = x+offsetx-(width/2);dStyle.top = y+offsety;dStyle.visibility = visible;snow = 1;/清除详细日期资料function mOut() if ( cnt = 1 ) sw = 0 if ( sw = 0 ) snow = 0;dStyle.visibility = hidden;else cnt+;/取得位置function mEvn() x=event.x;y=event.y;if (document.body.scrollLeft)x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;if (snow)dStyle.left = x+offsetx-(width/2)dStyle.top = y+offsety/function changeTZ() CITY.innerHTML = CLD.TZ.value.substr(6)setCookie(TZ,CLD.TZ.selectedIndex)function tick() var todaytoday = new Date()Clock.innerHTML = today.toLocaleString().replace(/(年|月)/g, /).replace(/日/, );Clock.innerHTML = TimeAdd(today.toGMTString(), CLD.TZ.value)window.setTimeout(tick(), 1000);function setCookie(name, value) var today = new Date()var expires = new Date()expires.setTime(today.getTime() + 1000*60*60*24*365)document.cookie = name + = + escape(value)+ ; expires= + expires.toGMTString()function getCookie(Name) var search = Name + =if(document.cookie.length 0) offset = document.cookie.indexOf(search)if(offset != -1) offset += search.lengthend = document.cookie.indexOf(;, offset)if(end = -1) end = document.cookie.lengthreturn unescape(document.cookie.substring(offset, end)else return /function initial() dStyle = detail.style;CLD.SY.selectedIndex=tY-1900;CLD.SM.selectedIndex=tM;drawCld(tY,tM);CLD.TZ.selectedIndex=getCookie(TZ);changeTZ();tick();/-!-= 算世界时间Function TimeAdd(UTC,T)Dim PlusMinus, DST, yIf Left(T,1)=- Then PlusMinus = -1 Else PlusMinus = 1UTC=Right(UTC,Len(UTC)-5)UTC=Left(UTC,Len(UTC)-4)y = Year(UTC)TimeAdd=DateAdd(n, (Cint(Mid(T,2,2)*60 + Cint(Mid(T,4,2) * PlusMinus, UTC)美国日光节约期间: 4月第一个星日00:00 至 10月最後一个星期日00:00If Mid(T,6,1)=* And DateSerial(y,4,(9 - Weekday(DateSerial(y,4,1) mod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程结算考试题及答案
- 家具设计标准与行业规范的理解试题及答案
- 会昌教招面试真题及答案
- 数量与质的对比理解题试题及答案
- 2025临床医学笔试题目及答案
- 植物上场测试题及答案
- 2025公务员考试试题及答案
- 2025飞行员面试试题及答案
- 区块链跨境支付系统稳定性与可靠性研究报告
- 教师教学改进方向的试题及答案
- 2025专利代理师笔试考试题库带答案
- 第3课《校园文化活动我参与》教案 海燕版综合实践活动 三年级下册
- 2025年保密教育线上培训考试试题及答案
- 大学生职业规划大赛《运动康复专业》生涯发展展示
- 高楼遮光补偿协议书范本
- 课题申报书:生成式人工智能赋能高职教学变革研究
- 2025-2030专用车产业规划及发展研究报告
- 《自由现金流折现法对东鹏特饮公司的财务估值实例分析》2000字
- 2024年四川绵阳科技城新区招聘社区工作者考试真题
- 2025-2030中国甘蔗收割机行业市场现状供需分析及投资评估规划分析研究报告
- 二零二五简短美发店劳动合同
评论
0/150
提交评论