我是靠谱客的博主 自然树叶,最近开发中收集的这篇文章主要介绍python连续输出月历_使用Python实现简易月历生成(1),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

"year calendar.json":根据前文思路,我们首先需要判断是否存在year calendar,如果不存在,则生成,存在,则读取。

本例设计的json文件数据格式为年、周、日期,如下图1:↑图1:Json文件数据格式

实现代码:

# -*- coding: utf-8 -*-

import calendar

import json

# 一年划分为53周,其中第1周及第53周的空缺日期由''填充。

# 定义空字典cal_list,用于储存完整日历信息

cal_list = dict()

# 定义year_range,用于确定日历起始年

year_range = range(2000, 2050)

# 循环:一个循环为一年

for year in year_range:

# 定义list用于储存全年日期

list = []

# list的空日期使用''补全

for i in range(calendar.monthrange(year, 1)[0]):

list.append('')

# 将year年的每月日期加入list变量

for mon in range(1, 13):

for day in range(calendar.monthrange(year, mon)[1]):

agent = str(day + 1) + '/' + str(mon)

list.append(agent)

# 定义year_calendar用于保存按周分割的全年日期

year_calendar = []

# 按周分割list的全年日期

for j in range(len(list) // 7 + 1):

year_calendar.append(list[j * 7:(j + 1) * 7])

# year_calendar可能存在末组为空(当年末为周日时),判断并删除

if year_calendar[len(year_calendar) - 1] == []:

del year_calendar[len(year_calendar) - 1]

# 将年末一周的空白日期用''补全

if len(year_calendar[len(year_calendar) - 1]) < 7:

for k in range(7 - len(year_calendar[len(year_calendar) - 1])):

year_calendar[len(year_calendar) - 1].insert(len(year_calendar[len(year_calendar) - 1]), '')

# 定义字典cal用于存储year年的,按周分割的全年日期

cal = {}

# 将year_calendar的周数及日期列表存入年字典cal中

for week_num in range(len(year_calendar)):

cal[week_num + 1] = year_calendar[week_num]

# 将cal存入完整日历字典cal_list中

cal_list[year] = cal

# 循环完成后,将cal_list转化成字符串并保存为'year_calendar.json',覆盖原文件

cal_list = json.dumps(cal_list)

with open('year_calendar.json', 'w') as f:

f.write(cal_list)

最后

以上就是自然树叶为你收集整理的python连续输出月历_使用Python实现简易月历生成(1)的全部内容,希望文章能够帮你解决python连续输出月历_使用Python实现简易月历生成(1)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部