Python每天3分钟 #048 – 日历 calendar

欢迎访问Python每天3分钟系列。

每天花3分钟时间,学习或温习一个Python知识点。今天是第048篇:

日历calendar

新年伊始,让我们来看看日历。

Python有一个专门处理日历的模块,小巧而强大。下面直接上代码。

打印某个月份的日历

import calendar

c = calendar.TextCalendar(calendar.MONDAY)
str = c.formatmonth(2022, 2)
print(str)

输出结果:

   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

是不是挺cool的?

  • calendar.TextCalendar(calendar.MONDAY)表示创建一个文本形式(Text)的日历,日历的每周从星期一开始。很多西方国家是从星期天作为一周的开始的。
  • 上面的代码打印了2022年2月份的日历。

我们可以换一下参数,从星期天开始:

c = calendar.TextCalendar(calendar.SUNDAY)

打印结果成了:

   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

用HTML格式打印

除了Text格式的的日历,calendar还可以打印HTML形式的日历:

import calendar
c = calendar.HTMLCalendar(calendar.MONDAY)
str = c.formatmonth(2022, 2)
print(str)

注意这里唯一的区别是TextCalendar变成了HTMLCalendar。打印的结果是一个HTML的表格:

<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">February 2022</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr>
<tr><td class="mon">7</td><td class="tue">8</td><td class="wed">9</td><td class="thu">10</td><td class="fri">11</td><td class="sat">12</td><td class="sun">13</td></tr>
<tr><td class="mon">14</td><td class="tue">15</td><td class="wed">16</td><td class="thu">17</td><td class="fri">18</td><td class="sat">19</td><td class="sun">20</td></tr>
<tr><td class="mon">21</td><td class="tue">22</td><td class="wed">23</td><td class="thu">24</td><td class="fri">25</td><td class="sat">26</td><td class="sun">27</td></tr>
<tr><td class="mon">28</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>

循环一个月中的每一天

for d in c.itermonthdays(2022, 2):
    print(d)

输出结果是按照这个日历表上的顺序输出第几天:

   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

如果不是本月的天,则会用0来表示,所以结果是:

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

其他用法

# 输出月份
for m in calendar.month_name:
    print(m)

结果:

January
February
March
April
May
June
July
August
September
October
November
December
# 输出星期几
for d in calendar.day_name:
    print(d)

结果:

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

好啦,今天就聊到这里,有问题给我留言。

相关链接:

Python每天3分钟 #047 – 静态方法

Python每天3分钟 #046 – 调试小能手icecream

Python每天3分钟 #045 – 代码块block和缓存机制

原文链接:http://www.zsiss.com/5640.html,转载请注明出处。

0

评论0

请先

爱分享推出ChatGPT国内镜像,无需魔法直接用!写文章,写代码,做PPT,做网站原创软文效果好到爆炸 https://chat.gcrup.com

社交账号快速登录