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基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
python实现用户管理系统
Jan 10 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
python中栈的原理及实现方法示例
Nov 27 Python
python 循环数据赋值实例
Dec 02 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
python实现井字棋小游戏
Mar 04 Python
win10下python3.8的PIL库安装过程
Jun 08 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
Protoss兵种介绍
2020/03/14 星际争霸
中国第一家无线电行
2021/03/01 无线电
支持oicq头像的留言簿(一)
2006/10/09 PHP
php fckeditor 调用的函数
2009/06/21 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python和C语言混合编程实例
2014/06/04 Python
深入理解python中的select模块
2017/04/23 Python
Python微信库:itchat的用法详解
2017/08/14 Python
python数据结构之链表详解
2017/09/12 Python
快速了解Python相对导入
2018/01/12 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
python实现任意位置文件分割的实例
2018/12/14 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
中专毕业生自荐信范文
2013/11/28 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python