標籤:
# -*- 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標準庫基礎學習