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赋值语句后逗号的作用分析
Jun 08 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
Python下载网络文本数据到本地内存的四种实现方法示例
Feb 05 Python
浅谈django rest jwt vue 跨域问题
Oct 26 Python
Python饼状图的绘制实例
Jan 15 Python
python实现QQ空间自动点赞功能
Apr 09 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
python字符串替换re.sub()实例解析
Feb 09 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
如何基于python把文字图片写入word文档
Jul 31 Python
Python绘制组合图的示例
Sep 18 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
护士试用期自我鉴定
2014/02/08 职场文书
说明书范文
2014/05/07 职场文书
volatile保证可见性及重排序方法
2022/08/05 Java/Android