-
Notifications
You must be signed in to change notification settings - Fork 1
/
create_calendar_md.py
70 lines (60 loc) · 1.89 KB
/
create_calendar_md.py
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""
# 用于生成日历markdown文件的小程序
# Date:2017-9-3
"""
from datetime import datetime
from calendar import monthrange
def get_list(xq, count):
"""填充日期,生成一个按星期排布的列表"""
list = [['','','','','','',''],
['','','','','','',''],
['','','','','','',''],
['','','','','','',''],
['','','','','','',''],
['','','','','','','']
]
n = 0
day = 1
for row in list:
for col in row:
if n >= xq and n <= 42:
if n < 7:
list[n//7][n] = day
else:
list[n//7][n%7] = day
day = day + 1
if day == count + 1:
if list[-1][0] == '':
list = list[:-1]
if xq == 7:
list = list[1:]
return list
n = n + 1
def create_one(year, month):
"""生成给定年月的MD日历文件"""
dt = datetime(year, month, 1)
xq = int(dt.strftime('%u')) # 该月的1号是星期几
count = monthrange(year, month)[1] # 该月一共有多少天
list = get_list(xq, count)
# 开始写文件
with open('%d年%d月.md' % (year,month), 'w') as f:
f.write('# %d年%d月' % (year,month) + '\n')
f.write('|日|一|二|三|四|五|六|' + '\n')
f.write('|:-|:-|:-|:-|:-|:-|:-|' + '\n')
r = 0
for row in list:
string = ''
c = 0
for col in row:
num = list[r][c]
if num == '':
string += '|'
else:
string += '|**%d** ' % num
c = c + 1
string += '|'
f.write(string + '\n')
r = r + 1
if __name__ == '__main__':
for month in range(1,13):
create_one(2017, month)