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 相关文章推荐
github配置使用指南
Nov 18 Python
详解在Python程序中解析并修改XML内容的方法
Nov 16 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
python获取url的返回信息方法
Dec 17 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
python实现超市商品销售管理系统
Oct 25 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
python 插入日期数据到Oracle实例
Mar 02 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 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扩展ZF――Validate扩展
2008/01/10 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
javascript 原型继承介绍
2011/08/30 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
详解Bootstrap插件
2016/04/25 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
中学生操行评语
2014/04/24 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
2015年外联部工作总结
2015/04/03 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
用Python实现Newton插值法
2021/04/17 Python
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
Python如何使用循环结构和分支结构
2022/04/13 Python