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冒泡排序算法的实现代码
Nov 21 Python
Python中工作日类库Busines Holiday的介绍与使用
Jul 06 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
解决python爬虫中有中文的url问题
May 11 Python
详解Python中的正则表达式
Jul 08 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
python中partial()基础用法说明
Dec 30 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
python实现websocket的客户端压力测试
Jun 25 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
php5.2.0内存管理改进
2007/01/22 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
js文字横向滚动特效
2015/11/11 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
python操作gmail实例
2015/01/14 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
校庆活动策划方案
2014/06/05 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
社保委托书怎么写
2014/08/02 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL