歷功能
轉(zhuǎn)載自: https://www.cnblogs.com/hualuyao/p/4561068.html
js可以Date對(duì)象很方便的獲取到每月的天數(shù),在初始化Date對(duì)象時(shí),我們可以通過這種方式:
以上代碼可以在控制臺(tái)輸出2015年2月份的天數(shù)
Date對(duì)象月份從0開始,即0表示1月份,以此類推。
在上面的代碼中,我們初始化d為三月份的第0天,由于JavaScript中day的范圍為1~31中的值,所以當(dāng)設(shè)為0時(shí),會(huì)向前 一天,也即表示上個(gè)月的最后一天。
通過這種方式可以得到每個(gè)月份的天數(shù),也不同區(qū)分閏年了,很方便。
可以寫個(gè)這樣的函數(shù),如下:
在使用時(shí)傳入想要獲取的年份和月份即可,如下:
本文中,我們將創(chuàng)建一個(gè)類似Google的互動(dòng)月度日歷,用戶可以在該日歷中實(shí)時(shí)創(chuàng)建,編輯和刪除約會(huì)。我們 將使用JavaScript Scheduler。以下是完成的應(yīng)用程序的屏幕截圖:
一 項(xiàng)目設(shè)置
我們需要引用以下文件來開始開發(fā):
JavaScript文件提供調(diào)度功能。CSS文件負(fù)責(zé)我們?nèi)諝v的樣式。我們創(chuàng)建一個(gè)名為“themes”的子文件夾,然后將light.css文件放在那里。
我們創(chuàng)建了一個(gè)HTML文件,一個(gè)名為GoogleSchedule的空白網(wǎng)頁,在head部分我們引用了兩個(gè)CSS文件:
<link href="themes/light.css" rel="stylesheet" /> href="themes/light.css" rel="stylesheet" />
對(duì)JavaScript文件的引用位于頁面底部,就在關(guān)閉正文標(biāo)記之前。
<a >http://MindFusion.Scheduling.js</a>
我們需要一個(gè)代表日歷的元素,我們?cè)贖TML代碼中創(chuàng)建一個(gè)元素并為其分配一個(gè)id:
<div id="calendar" style="height: 100%; width: 100%;"></div>
我們希望日歷占據(jù)整個(gè)頁面,這就是為什么寬度和高度都是100%。
二 創(chuàng)建和自定義計(jì)劃程序
現(xiàn)在我們已經(jīng)準(zhǔn)備好對(duì)日歷庫進(jìn)行真正的JavaScript編程了。我們創(chuàng)建一個(gè)名為“GoogleSchedule.js”的空J(rèn)S文件,并在網(wǎng)頁的底部添加對(duì)它的引用:
<a >http://GoogleSchedule.js</a>
在這個(gè)JavaScript文件中,我們首先創(chuàng)建一個(gè)到MindFusion.Scheduling命名空間的映射:
var p=MindFusion.Scheduling;
然后我們使用網(wǎng)頁中的Calendar DOM元素創(chuàng)建一個(gè)Calendar實(shí)例:
// create a new instance of the calendar var calendar=new p.Calendar(document.getElementById("calendar"));
我們將日歷視圖設(shè)置為CalendarView .SingleMonth,這意味著日歷一次顯示一個(gè)月。我們還設(shè)置了我們?cè)贑SS文件中引用的主題:
calendar.currentView=p.CalendarView.SingleMonth; calendar.theme="light";
我們進(jìn)行的另一個(gè)自定義 - 我們使用itemSettings.titleFormat屬性在每個(gè)事件主題之前添加前綴。前綴是此事件的開始時(shí)間。這是你如何設(shè)置它:
calendar.itemSettings.titleFormat="%s[hh:mm tt] %h";
最后,我們渲染日歷:
import calendar
print("月份 : ")
for m in calendar.month_name[1:]:
print(m)
輸出:
月份 :
January
February
March
April
May
June
July
August
September
October
November
December
print("月份日歷 : ")
calendar.prmonth(2022, 2)
輸出:
月份日歷 :
February 2022
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28
print("一年的日歷 : ")
calendar.prcal(2022)
輸出:
一年的日歷 :
2022
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3 4 5 6
3 4 5 6 7 8 9 7 8 9 10 11 12 13 7 8 9 10 11 12 13
10 11 12 13 14 15 16 14 15 16 17 18 19 20 14 15 16 17 18 19 20
17 18 19 20 21 22 23 21 22 23 24 25 26 27 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 28 29 30 31
31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 1 2 3 4 5
4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30
30 31
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4
4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
25 26 27 28 29 30 31 29 30 31 26 27 28 29 30
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
31
print("星期 : ")
for d in calendar.day_name:
print(d)
輸出:
星期 :
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
print("星期的縮寫: ", calendar.weekheader(4))
print("今天是星期幾", calendar.weekday(2022, 2, 7))
輸出:
星期的縮寫: Mon Tue Wed Thu Fri Sat Sun
今天是星期幾 0
print("今天星期幾,且這個(gè)月有幾天:", calendar.monthrange(2022, 2))
print("天數(shù)列表", calendar.monthcalendar(2022, 2))
輸出:
今天星期幾,且這個(gè)月有幾天: (1, 28)
天數(shù)列表 [[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 0, 0, 0, 0, 0, 0]]
print("文本字符串的月份日歷 : ", calendar.month(2022, 2))
輸出:
文本字符串的月份日歷 : February 2022
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28
print("text類型的月份日歷 (也可以使用HTMLCalendar,設(shè)置html類型): ",
calendar.TextCalendar(calendar.SUNDAY).formatmonth(2022, 2))
輸出:
text類型的月份日歷 (也可以使用HTMLCalendar,設(shè)置html類型): February 2022
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28
calendar.setfirstweekday(firstweekday=6)
print("設(shè)置一周的第一天是星期日,輸出一周的第一天", calendar.firstweekday())
輸出:
設(shè)置一周的第一天是星期日,輸出一周的第一天 6
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。