整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

js获取每个月最大天数,实现日历必要条件

js获取每个月最大天数,实现日历必要条件

历功能

js获取每个月最大天数

转载自: 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。以下是完成的应用程序的屏幕截图:

一 项目设置

我们需要引用以下文件来开始开发:

  • MindFusion.Scheduling.js
  • light.css

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


闰年