# -*- 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. 修改文件权限 chmod

    $ chmod u+x file                   给file的属主增加执行权限 $ chmod 751 file                   给file的属主分配读.写.执 ...

  2. android4.4 settings 中控制卡1 卡2都振动

    在package/app/Settings/src/com/android/settings/SoundSettings.java

  3. Tomcat全攻略

    内容: 一:简单介绍 二:安装及配置 三:应用 四:综述 參考资料 关于作者 相关内容: TCP/IP 介绍 TCP/IP 介绍 !== End Related dW Content Area --& ...

  4. PHP字符串的编码问题(转)

    大家都知道,不同字符编码,其在内存占用的字节数不一样.如ASCII编码字符占用1个字节,UTF-8编码的中文字符是3字节,GBK为2个字节.   PHP 也自带几种字符串截取函数,其中常用到的就是 s ...

  5. Java基础知识强化39:StringBuffer类之StringBuffer的删除功能

    1. StringBuffer的删除功能: public StringBuffer  deleteCharAt(int index):删除指定位置的字符,并返回字符串缓冲区本身. public Str ...

  6. python模块基础之getpass模块

    getpass模块提供了可移植的密码输入,一共包括下面两个函数: 1. getpass.getpass() 2. getpass.getuser() getpass.getpass([prompt[, ...

  7. js-事件委托

    事件委托一般用于动态生成的元素中使用,如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  8. DataGrid简单数据绑定实例2

    1.Image列显示: 后台绑定: //获取文件夹下的图片 string path = @"K:\Picture\jpg"; private void Button_Click(o ...

  9. Swift--控制流与oc不同的地方

    1.For-in循环中... for index in 1...5 { print("\(index) times 5 is \(index * 5)") } for _ in 1 ...

  10. 动态代理写connection连接池Demo

    public class JdbcUtil2 { //声明连接池<放到LinkedList中,操作其中对象的速度快 只需要改变连接> private static LinkedList&l ...