1. 程式人生 > >js實現的老黃曆專案總結

js實現的老黃曆專案總結

老黃曆-專案總結

這裡寫圖片描述

android app:calender.apk

功能介紹
1. 底部選單欄切換年,月;
2. home鍵切換回到當前月;
3. 點選相應的日期顯示農曆及節氣

亮點
1.android客戶端:calender.apk
2. 客戶端logo設計,圖片素材設計(photoshop)

3相容Chrome、 Firefox,以及國內主流瀏覽器。
4.適配大、中、小屏手機、pad等典型場景。

開發記錄
1.節氣計算

//某年的第n個節氣的公曆日期
var sterm_info= 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) //某年的第n個節氣的公曆日期(從0小寒算起) function sterm(y,n) { var offDate = new Date( ( 31556925974.7*(y-1900) + sterm_info[n]*60000 ) + Date.UTC(1900,0,6,2,5) ) return(offDate.getUTCDate()) } //獲取2016年第一個節氣小寒的公曆日期
var sterm = sTermDate(2016,0); var stdateStr = sterm.getFullYear()+"-"+(sterm.getMonth()+1)+"-"+sterm.getUTCDate();

2.計算每年閏月/每月天數

//表示1900-2049年陰曆資料
var lunar_info=new Array(//
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260
,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,
0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5
,0x06a50,0x06d40, 0x1ab54,0x02b60,0x09570,0x052f2,0x04970, 0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0, 0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950, 0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4, 0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557, 0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0, 0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0, 0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570, 0x05260,0x0f263,0x0d950,0x05b57,0x056a0, 0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4, 0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6, 0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a, 0x06a50,0x06d40,0x0af46,0x0ab60,0x09570, 0x04af5,0x04970,0x064b0,0x074a3,0x0ea50, 0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0, 0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552, 0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5, 0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9, 0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930, 0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60, 0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530, 0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0, 0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45, 0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577, 0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)

上述陰曆資料的正確的解釋是:
二進位制形式
xxxx xxxx xxxx xxxx xxxx
20-17 16-12 12-9 8-5 4-1
1-4: 表示當年有無閏年,有的話,為閏月的月份,沒有的話,為0。
5-16:為除了閏月外的正常月份是大月還是小月,1為30天,0為29天。
注意:從1月到12月對應的是第16位到第5位。
17-20: 表示閏月是大月還是小月,僅當存在閏月的情況下有意義。
Example:
1980年的資料是: 0x095b0
二進位制:00001001 0101 1011 0000
表示1980年沒有閏月,從1月到12月的天數依次為:30、29、29、30、29、30、29、30、30、29、30、30。
1982年的資料是:0x0a974
0000 1010 1010 0111 0100
表示1982年的4月為閏月,即有第二個4月,且是閏小月。
從1月到13月的天數依次為:30、29、30、29、29(閏月)、30、29、30、29、29、30、30、30。

問題:

一.手機端自適應
1.在HTML頭部增加viewport標籤
2. 佈局寬度使用相對寬度。

二:select預設樣式更改

  1. 預設選擇框樣式清除,隱藏下拉箭頭
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;

三:網頁中的特殊字型font-family: webdings 火狐bug 只能顯示數字

Firefox,Opera等瀏覽器不支援Webdings字型。
1.變通的方法是,查出Webdings圖案對應的Unicode編碼,類似於這種:

◄ 
► 

這裡寫圖片描述

2.用圖片唄

4. android移動端開發
基於phonegap開發android端應用

 PhoneGap是一套能讓你使用HTML5輕鬆呼叫本地API介面
 和釋出應用到商店的應用開發平臺。官方說有低成本,
 低開發週期,輕量化等優點,這些咱暫時也沒法證明,
 略過不表。但是有一條跨平臺,卻是很明顯的優勢。

1.Android開發環境的部署。
第一步:安裝JDK。
第二步:配置Windows上JDK的變數環境 。
第三步: 下載安裝Eclipse 。
第四步:下載安裝Android SDK 。
第五步:為Eclipse安裝ADT外掛。

2.專案應用打包