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写的Socks5协议代理服务器
Aug 06 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
Python实现数通设备端口使用情况监控实例
Jul 15 Python
python中set()函数简介及实例解析
Jan 09 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 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中数据的批量导入(csv文件)
2006/10/09 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
php ci框架验证码实例分析
2013/06/26 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
python中的错误处理
2016/04/10 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
学习“七一”讲话精神体会
2014/07/08 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
大学生操行评语大全
2014/12/31 职场文书
新生儿未入户证明
2015/06/23 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android