python生成日历实例解析


Posted in Python onAugust 21, 2014

本文实例展示了Python生成日历的实现方法。该实例可实现一个月的日历生成5x7的列表,列表里的没个日期为datetime类型,采用python自带的 calendar 模块实现。

程序运行结果如下:

python test.py 2014 09 
2014-08-31 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05 2014-09-06 
2014-09-07 2014-09-08 2014-09-09 2014-09-10 2014-09-11 2014-09-12 2014-09-13 
2014-09-14 2014-09-15 2014-09-16 2014-09-17 2014-09-18 2014-09-19 2014-09-20 
2014-09-21 2014-09-22 2014-09-23 2014-09-24 2014-09-25 2014-09-26 2014-09-27 
2014-09-28 2014-09-29 2014-09-30 2014-10-01 2014-10-02 2014-10-03 2014-10-04

python代码如下:

#coding:utf-8
# Last modified: 2014-08-21 11:08:08 
import calendar 
import datetime 
import sys 
 
def getcal(y, m): 
 # 从周日开始 
 cal = calendar.Calendar(6) 
 if not isinstance(y, int): y = int(y) 
 if not isinstance(m, int): m = int(m) 
 if m == 1: # 1月份 
  py = y - 1; pm = 12; 
  ny = y; nm = 2 
 elif m == 12: # 12月份 
  py = y; pm = 11 
  ny = y + 1; nm = 1 
 else: 
  py = y; pm = m - 1 
  ny = y; nm = m + 1 
 pcal = cal.monthdayscalendar(py, pm) # 上一月 
 ncal = cal.monthdayscalendar(ny, nm) # 下一月 
 ccal = cal.monthdayscalendar(y, m)  # 当前 
 w1 = ccal.pop(0) # 取第一周 
 w2 = ccal.pop() # 取最后一周 
 wp = pcal.pop() # 上个月的最后一周 
 wn = ncal.pop(0) # 下个月的第一周 
 #r1 = [datetime.date(y, m ,w1[i]) or wp[i] for i in range(7)] 
 r1 = [w1[i] and datetime.date(y, m, w1[i]) or datetime.date(py, pm, wp[i]) for i in range(7)] 
 r2 = [w2[i] and datetime.date(y, m, w2[i]) or datetime.date(ny, nm, wn[i]) for i in range(7)] 
 # 转datetime 
 result = [] 
 result.append(r1) # 第一周 
 for c in ccal:  # 其他周 
  result.append([datetime.date(y,m,i) for i in c]) 
 result.append(r2) # 最后一周 
 return result 
 
if __name__ == '__main__': 
 for w in getcal(sys.argv[1], sys.argv[2]): 
  for d in w: 
   print d, 
  print

希望本文所述实例对大家的Python程序设计有所帮助。

Python 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python实现网站注册验证码生成类
Jun 08 Python
python删除某个字符
Mar 19 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
Sanic框架安装与简单入门示例
Jul 16 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
django删除表重建的实现方法
Aug 28 Python
Python文件操作函数用法实例详解
Dec 24 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 #Python
Python中除法使用的注意事项
Aug 21 #Python
Python中dictionary items()系列函数的用法实例
Aug 21 #Python
Python 不同对象比较大小示例探讨
Aug 21 #Python
python字符串连接方式汇总
Aug 21 #Python
零基础学Python(一)Python环境安装
Aug 20 #Python
Python中replace方法实例分析
Aug 20 #Python
You might like
php下通过POST还是GET来传值
2008/06/05 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
javascript 闭包详解
2015/02/15 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
python实现猜单词游戏
2020/05/22 Python
美国电视购物:QVC
2017/02/06 全球购物
环境科学专业个人求职的自我评价
2013/11/28 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
员工规章制度范本
2015/08/07 职场文书
python状态机transitions库详解
2021/06/02 Python
ubuntu下常用apt命令介绍
2022/06/05 Servers