




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
淮北師范大學(xué) 08網(wǎng)絡(luò)工程cc軟件系列課程設(shè)計(jì)基于JavaScript(網(wǎng)頁腳本語言)編寫的萬年歷班 級 學(xué) 號 姓 名 指導(dǎo)教師 成 績_2010年 06 月 18 日目錄摘要一、引言1應(yīng)用背景2可行性分析3研究路線及內(nèi)容二、系統(tǒng)開發(fā)工具三、系統(tǒng)設(shè)計(jì)(詳細(xì)設(shè)計(jì)) 四、結(jié)束語 1.總結(jié) 2.參考文獻(xiàn)摘要極品萬年歷,帶有帶有電子時(shí)鐘,可看不同時(shí)區(qū)時(shí)間,陽歷、農(nóng)歷同步顯示,鼠標(biāo)指出,天干地支計(jì)時(shí)即出。1、 引言 1,、應(yīng)用背景隨著科技的發(fā)展,人們渴望著把現(xiàn)實(shí)生活中的林林總總都搬到電腦上,大到工程設(shè)計(jì),小到極品萬年歷。2、 可行性分析方便查看農(nóng)歷重要的日子,方便外出辦公校正不同區(qū)時(shí)3、 研究路線及內(nèi)容通過用JavaScript語言編寫代碼,并利用文本保存為HTTP或HTML格式。并試圖實(shí)現(xiàn)一下內(nèi)容:1、 可看陽歷;2、 可看農(nóng)歷;3、 可看時(shí)間;4、 可看天干地支計(jì)時(shí);5、 可劃分區(qū)時(shí)。2、 系統(tǒng)開發(fā)工具JavaScript網(wǎng)頁腳本語言,IE、360安全瀏覽器或其他瀏覽器。3、 系統(tǒng)設(shè)計(jì) 1、程序源碼 cc萬年歷 0x8; i=1) sum += (lunarInfoy-1900 & i)? 1: 0return(sum+leapDays(y)/= 傳回農(nóng)歷 y年閏月的天數(shù)function leapDays(y) if(leapMonth(y) return(lunarInfoy-1900 & 0x10000)? 30: 29)else return(0)/= 傳回農(nóng)歷 y年閏哪個(gè)月 1-12 , 沒閏傳回 0function leapMonth(y) return(lunarInfoy-1900 & 0xf)/= 傳回農(nóng)歷 y年m月的總天數(shù)function monthDays(y,m) return( (lunarInfoy-1900 & (0x10000m)? 30: 29 )/= 算出農(nóng)歷, 傳入日期物件, 傳回農(nóng)歷日期物件/ 該物件屬性有 .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) /閏哪個(gè)月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月的天數(shù)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;/農(nóng)歷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 = ; /農(nóng)歷節(jié)日this.solarFestival = ; /國歷節(jié)日this.solarTerms = ; /節(jié)氣/= 某年的第n個(gè)節(jié)氣為幾日(從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) /當(dāng)月一日日期this.length = solarDays(y,m) /國歷當(dāng)月天數(shù)this.firstWeek = sDObj.getDay() /國歷當(dāng)月1日星期幾for(var i=0;ilX) sDObj = new Date(y,m,i+1) /當(dāng)月一日日期lDObj = new Lunar(sDObj) /農(nóng)歷lY = lDObj.year /農(nóng)歷年lM = lDObj.month /農(nóng)歷月lD = lDObj.day /農(nóng)歷日lL = lDObj.isLeap /農(nóng)歷是否閏月lX = lL? leapDays(lY): monthDays(lY,lM) /農(nóng)歷當(dāng)月最後一天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 /周休二日顏色/節(jié)氣tmp1=sTerm(y,m*2 )-1tmp2=sTerm(y,m*2+1)-1thistmp1.solarTerms = solarTermm*2thistmp2.solarTerms = solarTermm*2+1if(m=3) thistmp1.color = red /清明顏色/國歷節(jié)日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/月周節(jié)日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 + /農(nóng)歷節(jié)日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 +年 農(nóng)歷 + cyclical(SY-1900+36) + 年 【+Animals(SY-4)%12+】;YMBG.innerHTML = + SY + + monthNameSM;for(i=0;i-1 & sDcld.length) /日期內(nèi)sObj.innerHTML = sD+1;if(cldsD.isToday) sObj.className = todyaColor; /今日顏色sObj.style.color = cldsD.color; /國定假日顏色if(cldsD.lDay=1) /顯示農(nóng)歷月lObj.innerHTML = +(cldsD.isLeap?閏:) + cldsD.lMonth + 月 + (monthDays(cldsD.lYear,cldsD.lMonth)=29?小:大)+;else /顯示農(nóng)歷日lObj.innerHTML = cDay(cldsD.lDay);s=cldsD.lunarFestival;if(s.length0) /農(nóng)歷節(jié)日if(s.length6) s = s.substr(0, 4)+;s = s.fontcolor(red);else /國歷節(jié)日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 /廿四節(jié)氣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;/顯示詳細(xì)日期資料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+農(nóng)歷+(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;/清除詳細(xì)日期資料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();/-!-= 算世界時(shí)間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)美國日光節(jié)約期間: 4月第一個(gè)星日00:00 至 10月最後一個(gè)星期日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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考?xì)v史總復(fù)習(xí)初中歷史必考120個(gè)重點(diǎn)知識(shí)填空匯編
- 保安班組長培訓(xùn)
- 會(huì)議操作培訓(xùn)
- 車隊(duì)運(yùn)輸安全合同協(xié)議
- 基本公共衛(wèi)生培訓(xùn)課件
- 車輛墊資結(jié)清協(xié)議合同
- 小企業(yè)聯(lián)保循環(huán)額度借款合同
- 辦公室保潔服務(wù)合同
- 車架廢鐵采購合同協(xié)議
- 爸媽離婚協(xié)議書
- 美發(fā)技能鑒定考試模擬題與參考答案解析
- 書香校園讀書主題班會(huì) 課件
- 2025年度考研政治馬克思主義政治經(jīng)濟(jì)學(xué)核心考點(diǎn)復(fù)習(xí)匯編
- 2025年保密教育線上培訓(xùn)考試試題及答案
- 域名解析換編碼 課件 2024-2025學(xué)年人教版(2024)初中信息科技七年級上冊
- 整形美容醫(yī)院醫(yī)患溝通流程
- 2024年四川綿陽科技城新區(qū)招聘社區(qū)工作者考試真題
- 2025年北師大版七年級數(shù)學(xué)下冊計(jì)算題專項(xiàng)訓(xùn)練專題03與乘法公式有關(guān)的計(jì)算(三大題型總結(jié))(原卷版+解析)
- 新時(shí)代幼兒園教師職業(yè)行為十項(xiàng)準(zhǔn)則培訓(xùn)
- 2025-2030中國甘蔗收割機(jī)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 人工智能背景下的高職藝術(shù)設(shè)計(jì)專業(yè)教學(xué)模式探索
評論
0/150
提交評論