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 相关文章推荐
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
Python里隐藏的“禅”
Jun 16 Python
Python中变量交换的例子
Aug 25 Python
Python 正则表达式实现计算器功能
Apr 29 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
pycharm重命名文件的方法步骤
Jul 29 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
python 使用openpyxl读取excel数据
Feb 18 Python
如何利用python实现列表嵌套字典取值
Jun 10 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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
js面向对象编程总结
2017/02/16 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
如何整合JQuery和Prototype
2014/01/31 面试题
历史系毕业生自荐信
2013/10/28 职场文书
大学生的四年学习自我评价
2013/12/13 职场文书
安全大检查反思材料
2014/01/31 职场文书
北京颐和园导游词
2015/01/30 职场文书
董事长岗位职责
2015/02/13 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
javaScript Array api梳理
2021/03/31 Javascript