js實現簡單的日曆

2021-09-27 18:23:53 字數 2799 閱讀 7032

最終效果:

我先寫了乙個js檔案,方便呼叫裡面的函式,內容如下:

//此函式使時間按照指定的字串樣式輸出

//date是當前的系統時間

function dateformat(date, str)

//獲取當前月份一共有多少天

function getdays(date)

//獲取當月第一天是星期幾

function firstweek(date)

//獲得當月的上乙個月總共有多少天

function prevmonthdays(date)

以下為或得陰曆的方法,但是該演算法本人也不是很清楚,這裡只給**

/*獲取當前農曆*/

function showcal(d)

//定義全域性變數

var calendardata = new array(100);

var madd = new array(12);

var tgstring = "甲乙丙丁戊己庚辛壬癸";

var dzstring = "子丑寅卯辰巳午未申酉戌亥";

var numstring = "一二三四五六七**十";

var monstring = "正二三四五六七**十冬臘";

var weekstring = "日一二三四五六";

var sx = "鼠牛虎兔龍蛇馬羊猴雞狗豬";

var cyear, cmonth, cday, thedate;

calendardata = new array(0xa4b, 0x5164b, 0x6a5, 0x6d4, 0x415b5, 0x2b6, 0x957, 0x2092f, 0x497, 0x60c96, 0xd4a, 0xea5, 0x50da9, 0x5ad, 0x2b6, 0x3126e, 0x92e, 0x7192d, 0xc95, 0xd4a, 0x61b4a, 0xb55, 0x56a, 0x4155b, 0x25d, 0x92d, 0x2192b, 0xa95, 0x71695, 0x6ca, 0xb55, 0x50ab5, 0x4da, 0xa5b, 0x30a57, 0x52b, 0x8152a, 0xe95, 0x6aa, 0x615aa, 0xab5, 0x4b6, 0x414ae, 0xa57, 0x526, 0x31d26, 0xd95, 0x70b55, 0x56a, 0x96d, 0x5095d, 0x4ad, 0xa4d, 0x41a4d, 0xd25, 0x81aa5, 0xb54, 0xb6a, 0x612da, 0x95b, 0x49b, 0x41497, 0xa4b, 0xa164b, 0x6a5, 0x6d4, 0x615b4, 0xab6, 0x957, 0x5092f, 0x497, 0x64b, 0x30d4a, 0xea5, 0x80d65, 0x5ac, 0xab6, 0x5126d, 0x92e, 0xc96, 0x41a95, 0xd4a, 0xda5, 0x20b55, 0x56a, 0x7155b, 0x25d, 0x92d, 0x5192b, 0xa95, 0xb4a, 0x416aa, 0xad5, 0x90ab5, 0x4ba, 0xa5b, 0x60a57, 0x52b, 0xa93, 0x40e95);

madd[0] = 0;

madd[1] = 31;

madd[2] = 59;

madd[3] = 90;

madd[4] = 120;

madd[5] = 151;

madd[6] = 181;

madd[7] = 212;

madd[8] = 243;

madd[9] = 273;

madd[10] = 304;

madd[11] = 334;

function getbit(m, n)

//農曆轉換

function e2c()

total = (tmp - 1921) * 365 + math.floor((tmp - 1921) / 4) + madd[thedate.getmonth()] + thedate.getdate() - 38;

if (thedate.getyear() % 4 == 0 && thedate.getmonth() > 1)

for (m = 0; ; m++)

total = total - 29 - getbit(calendardata[m], n);

}if (isend) break;

}cyear = 1921 + m;

cmonth = k - n + 1;

cday = total;

if (k == 12)

if (cmonth > math.floor(calendardata[m] / 0x10000) + 1)

}}function getcdatestring() else

tmp += "月";

tmp += (cday < 11) ? "初" : ((cday < 20) ? "十" : ((cday < 30) ? "廿" : "三十"));

if (cday % 10 != 0 || cday == 10)

return tmp;

}function getlunarday(solaryear, solarmonth, solarday) else

}

下面為日曆的關鍵**:

上下

js實現日曆的簡單演算法

最近有用到日曆可需要編輯文字的日曆,為了繫結資料的方便,所以用js寫了一套日曆,其實思想也是很簡單。實現步驟如下 1 首先取得處理月的總天數 js不提供此引數,我們需要計算。考慮到閏年問題會影響二月份的天數,我們先編寫乙個判斷閏年的自編函式 function is leap year 2 接著定義乙...

js實現日曆

有這樣乙個普通的日曆需求 第一反應就是找外掛程式,結果找到了,但是改起來非常麻煩,然後查下實現的原理,發現原來很簡單,於是自己實現了乙個。首先分析一下這個元件,每頁顯示的是 然後,神奇的date型別原來可以這樣獲取日期例項 new date 2018,4,0 2018年5月第一天的date例項 ne...

js隨筆 日曆的簡單實現(無css)

第一步,html 不能再多了,這樣已經不少了 第二步,js 分析 初始化日曆表 設定表頭 var setcalendartop function 1.顯示表頭日期 顯示表頭日期 var settopdate function year,month,today 2.獲得當前月的第一天是星期幾 第一天開...