python生成日歷實(shí)例解析
本文實(shí)例展示了Python生成日歷的實(shí)現(xiàn)方法。該實(shí)例可實(shí)現(xiàn)一個(gè)月的日歷生成5x7的列表,列表里的沒個(gè)日期為datetime類型,采用python自帶的 calendar 模塊實(shí)現(xiàn)。
程序運(yùn)行結(jié)果如下:
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) # 當(dāng)前 w1 = ccal.pop(0) # 取第一周 w2 = ccal.pop() # 取最后一周 wp = pcal.pop() # 上個(gè)月的最后一周 wn = ncal.pop(0) # 下個(gè)月的第一周 #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)] # 轉(zhuǎn)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
希望本文所述實(shí)例對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Django框架實(shí)現(xiàn)逆向解析url的方法
這篇文章主要介紹了Django框架實(shí)現(xiàn)逆向解析url的方法,結(jié)合實(shí)例形式分析了Django逆向解析URL的原理、步驟、相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-07-07Python爬蟲抓取指定網(wǎng)頁(yè)圖片代碼實(shí)例
這篇文章主要介紹了Python爬蟲抓取指定網(wǎng)頁(yè)圖片代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07python生成以及打開json、csv和txt文件的實(shí)例
今天小編就為大家分享一篇python生成以及打開json、csv和txt文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11如何使用VSCode愉快的寫Python于調(diào)試配置步驟
從我的使用經(jīng)驗(yàn)出發(fā),可以說VSCode用來寫Python真的是再合適不過了,你將體驗(yàn)到絲滑的編程體驗(yàn)和無限擴(kuò)展的可能。而且,如果你的項(xiàng)目是包含多種語(yǔ)言的,比如Web開發(fā),你不必再開多個(gè)編輯器和其他工具,因?yàn)檫@一切都可以在VSCode里完成了2018-04-04Python?NumPy教程之?dāng)?shù)組的基本操作詳解
Numpy?中的數(shù)組是一個(gè)元素表(通常是數(shù)字),所有元素類型相同,由正整數(shù)元組索引。本文將通過一些示例詳細(xì)講一下NumPy中數(shù)組的一些基本操作,需要的可以參考一下2022-08-0813個(gè)Pandas實(shí)用技巧,助你提高開發(fā)效率
這篇文章主要介紹了13個(gè)Pandas實(shí)用技巧,幫助你提高python開發(fā)的效率,感興趣的朋友可以了解下2020-08-08分解oracle存儲(chǔ)過程或函數(shù)調(diào)試過程步驟
這篇文章主要介紹了調(diào)試oracle存儲(chǔ)過程或函數(shù)過程步驟,文中附含詳細(xì)的圖文操作步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09