历功能
转载自: https://www.cnblogs.com/hualuyao/p/4561068.html
js可以Date对象很方便的获取到每月的天数,在初始化Date对象时,我们可以通过这种方式:
以上代码可以在控制台输出2015年2月份的天数
Date对象月份从0开始,即0表示1月份,以此类推。
在上面的代码中,我们初始化d为三月份的第0天,由于JavaScript中day的范围为1~31中的值,所以当设为0时,会向前 一天,也即表示上个月的最后一天。
通过这种方式可以得到每个月份的天数,也不同区分闰年了,很方便。
可以写个这样的函数,如下:
在使用时传入想要获取的年份和月份即可,如下:
本文中,我们将创建一个类似Google的互动月度日历,用户可以在该日历中实时创建,编辑和删除约会。我们 将使用JavaScript Scheduler。以下是完成的应用程序的屏幕截图:
一 项目设置
我们需要引用以下文件来开始开发:
JavaScript文件提供调度功能。CSS文件负责我们日历的样式。我们创建一个名为“themes”的子文件夹,然后将light.css文件放在那里。
我们创建了一个HTML文件,一个名为GoogleSchedule的空白网页,在head部分我们引用了两个CSS文件:
<link href="themes/light.css" rel="stylesheet" /> href="themes/light.css" rel="stylesheet" />
对JavaScript文件的引用位于页面底部,就在关闭正文标记之前。
<a href="http://MindFusion.Scheduling.js">http://MindFusion.Scheduling.js</a>
我们需要一个代表日历的元素,我们在HTML代码中创建一个元素并为其分配一个id:
<div id="calendar" style="height: 100%; width: 100%;"></div>
我们希望日历占据整个页面,这就是为什么宽度和高度都是100%。
二 创建和自定义计划程序
现在我们已经准备好对日历库进行真正的JavaScript编程了。我们创建一个名为“GoogleSchedule.js”的空JS文件,并在网页的底部添加对它的引用:
<a href="http://GoogleSchedule.js">http://GoogleSchedule.js</a>
在这个JavaScript文件中,我们首先创建一个到MindFusion.Scheduling命名空间的映射:
var p=MindFusion.Scheduling;
然后我们使用网页中的Calendar DOM元素创建一个Calendar实例:
// create a new instance of the calendar var calendar=new p.Calendar(document.getElementById("calendar"));
我们将日历视图设置为CalendarView .SingleMonth,这意味着日历一次显示一个月。我们还设置了我们在CSS文件中引用的主题:
calendar.currentView=p.CalendarView.SingleMonth; calendar.theme="light";
我们进行的另一个自定义 - 我们使用itemSettings.titleFormat属性在每个事件主题之前添加前缀。前缀是此事件的开始时间。这是你如何设置它:
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("今天星期几,且这个月有几天:", calendar.monthrange(2022, 2))
print("天数列表", calendar.monthcalendar(2022, 2))
输出:
今天星期几,且这个月有几天: (1, 28)
天数列表 [[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,设置html类型): ",
calendar.TextCalendar(calendar.SUNDAY).formatmonth(2022, 2))
输出:
text类型的月份日历 (也可以使用HTMLCalendar,设置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("设置一周的第一天是星期日,输出一周的第一天", calendar.firstweekday())
输出:
设置一周的第一天是星期日,输出一周的第一天 6
*请认真填写需求信息,我们会在24小时内与您取得联系。