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实现汉诺塔递归算法经典案例
Mar 01 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
python得到单词模式的示例
Oct 15 Python
浅谈python中get pass用法
Mar 19 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
python实现证件照换底功能
Aug 20 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
python的Jenkins接口调用方式
May 12 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
django创建css文件夹的具体方法
Jul 31 Python
python3中for循环踩过的坑记录
Dec 14 Python
详解Python调用系统命令的六种方法
Jan 28 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
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python函数生成器原理及使用详解
2020/03/12 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
浅析Python 多行匹配模式
2020/07/24 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
企业安全生产责任书
2014/04/14 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
《搭石》教学反思
2016/02/18 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
手写实现JS中的new
2021/11/07 Javascript
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers