# -*- coding: utf-8 -*-
# 作者:新手
__author__ = 'Administrator'
#标准库:日期时间基础学习:calendar:处理日期
#例1
import calendar
c=calendar.TextCalendar(calendar.SUNDAY)
c.prmonth(2015,3)
#prmonth()简单函数,生成一个月的格式文件输出
#TextCalendar()从星期天(为第一天,因为老外是从星期天开始算第一天的)
#利用HTMLCalendar和formatmonth()可以生成一个类似html表格,显示的和纯文本版本大致同样
c=calendar.HTMLCalendar(calendar.SUNDAY)
print c.formatday(7,0)
#不过会用html标记包围,各个表单元格有一个类属性对应星期几,所以可能通过css指定html样式
"""
要使用可用默认格式之外的某种格式生成输出,可以使用calendar计算日期,并把这些值 组织为周和月,然后迭代处理结果,对于这样的任务,它有以下几个属性可以使用:
    weekheader(),MONTHCALENDAR(),(特别有用的:yeardays2calendar(),它会生成一个由<月栏>列表构成的序列,每个列表包含一个月,每个月是一个周列表,周是元组列表,元组由编号(1~31)和星期几(1~6)构成,当月以外的日编号为0)
"""
import pprint
c=calendar.Calendar(calendar.SUNDAY)
data=c.yeardays2calendar(2015,3)
print 'len(data)          :',len(data)
top=data[0]
print'len(top)            :',len(top)
mont=top[0]
print 'len(mont)          :',len(mont)
print 'mont:'
pprint.pprint(mont)
#这等价于formatyear()方式
c=calendar.TextCalendar(calendar.SUNDAY)
print c.formatyear(2015,3,1,0)
#day_name,day_abbr,month_name,month_abbr模块属性对于生成定制格式输出很有用(如html输出包含的链接),这些属性会针对当前本地化环境正确的地处配置

#计算日期
#计算中某一天的事件
print u'计算日期:\n'
pprint.pprint(calendar.monthcalendar(2015,3))
#有些日期值为0,说明尽管这几天属性另一个月,但与给定的当前月中的几天属于同一个星期

#一周中的第一天默认认为是星期一,可以通过使用setfirstweekday()来改变这个设置,不过由于calenday模块包含了一些常用来索引monthcalendar()返回的日期区间,所以在这片情况下路过这一步会更加方便
#例3
for m in range(1,13):
    c=calendar.monthcalendar(2015,m)
    first_week=c[0]
    second_week=c[1]
    third_week=c[2]
    if first_week[calendar.THURSDAY]:
        data1=second_week[calendar.THURSDAY]
    else:
        data1=third_week[calendar.THURSDAY]
    print '%3s :%2s'%(calendar.month_abbr[m],data1)

#calendar官方标准库地址:https://docs.python.org/2.7/library/calendar.html?highlight=calendar#module-calendar

python calendar标准库基础学习的更多相关文章

  1. python linecache标准库基础学习

    #python标准库基础之:linecacge:高效读取文本文件#说明与作用"""可以从文件或者导入python模块获取文件,维护一个结果缓存,从而可以更高效地从相同文件 ...

  2. python StringIO标准库基础学习

    #标准库:StringIO提供类文件API文本缓冲区#作用:可以处理内存中的文本,有2种不同的实现:cStringIP版本用c编写提高速度,StringIO用python来提供可移植性,与其他字符串连 ...

  3. python glob标准库基础学习

    #glob文件名模式匹配#作用:使用unix shell规则查找与一个模式匹配文件名"""尽管glob api很小,但这个模块很强大,只要程序需要查找文件系统中名字与某种 ...

  4. python filecmp标准库基础学习

    # -*- coding: utf-8 -*-# 作者:新手__author__ = 'Administrator'#文件的比较import os,filecmp#作用用于比较系统中的目录和文件#例子 ...

  5. python 标准库基础学习之开发工具部分1学习

    #2个标准库模块放一起学习,这样减少占用地方和空间#标准库之compileall字节编译源文件import compileall,re,sys#作用是查找到python文件,并把它们编译成字节码表示, ...

  6. 【python】标准库的大致认识

    正如那句 Python 社区中很有名的话所说的:“battery included”,Python 的一大好处在于它有一套很有用的标准库(standard library).标准库是随着 Python ...

  7. C 标准库基础 IO 操作总结

    其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...

  8. Python的标准库介绍与常用的第三方库

    Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...

  9. python 使用标准库连接linux实现scp和执行命令

    import stat import pexpect 只显示关键代码: sqldb = localpath+database //获取database名字 if os.path.exists(sqld ...

随机推荐

  1. 几款命令行工具(CMD)增强软件

    如果经常要与 命令行工具(CMD)打交道,推荐几款工具来增强与替代 Windows 默认的 CMD. 1.PowerCMD 优点:老牌软件,功能强大,支持自定义配色方案,目前最新版本为 2.2: 缺点 ...

  2. 程序猿的道路~~(How to be a programmer?)

    程序猿的道路其实很简单,主要就是三条: Learn (学习), Practice(练习), Summary(总结) 推荐给新手程序猿两篇文章: 给程序员新手的一些建议 程序员技术练级攻略 当然了,整个 ...

  3. Windows移动开发(二)——闭关修炼

    一些武侠小说里的大人物,为了争夺武林盟主,号召天下,常常闭关修炼一段时间,闭关期间仅仅能接触送饭的人,而且关外还有非常多守卫的人员.还有,不管是篮球还是足球运动员,他们在真正接触球之前,都必须做非常长 ...

  4. android 滚动视图(ScrollView)

    为了可以让内嵌布局管理器之中加入多个显示的组件,而且又保证程序不这么冗余,所以可以通过 Activity程序进行控制,向内嵌布局管理器中添加多个组件. ScrollView提供一个显示的容器,可以包含 ...

  5. Android事件处理之多点触摸与手势识别

    一.Muilti-touch 双指缩放的实现探索: 首先要实现OnTouchListener接口,然后重写方法: public boolean onTouch(View v, MotionEvent ...

  6. 第三章 Android绘图机制与处理技巧

    1.屏幕尺寸信息 屏幕大小:屏幕对角线长度,单位“寸”:分辨率:手机屏幕像素点个数,例如720x1280分辨率:PPI(Pixels Per Inch):即DPI(Dots Per Inch),它是对 ...

  7. Python字符串方法

    capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 c ...

  8. 从客户端检测到有潜在危险的Request.Form值

    1.带有html标记内容提交(使用web编辑器): js: <script type="text/javascript"> //简单模式 var editor; Kin ...

  9. 干货--微信公众平台客户端调试工具-初试WPF开发

    本工具可以由任意一个开发微信公众平台的开发者使用,虽然它本身使用WPF(C#)开发的,但是并不受你想调试的服务所用的语言的影响. 之前一直在做微信公众平台开发,客户端调试是必须做的事情,一直以来都是用 ...

  10. Swift - guard关键字(守护)

    guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会有一个代码块,不像if语句可以if else多个代码块. 那么guar ...