您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Python中怎么判斷統計每個月的天數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
斷統計每個月天數源碼示例:如下
#!/usr/bin/python # -*- coding: utf-8 -*- """ 計算自然周第一天、自然月第一天和每天的凌晨時間戳 //www.iplaypy.com/ """ import time def get_day_begin(ts = time.time(),N = 0): """ N為0時獲取時間戳ts當天的起始時間戳,N為負數時前數N天,N為正數是后數N天 """ return int(time.mktime(time.strptime(time.strftime('%Y-%m-%d',time.localtime(ts)),'%Y-%m-%d'))) + 86400*N def get_week_begin(ts = time.time(),N = 0): """ N為0時獲取時間戳ts當周的開始時間戳,N為負數時前數N周,N為整數是后數N周,此函數將周一作為周的第一天 """ w = int(time.strftime('%w',time.localtime(ts))) return get_day_begin(int(ts - (w-1)*86400)) + N*604800 def get_month_begin(ts = time.time(),N = 0): """ N為0時獲取時間戳ts當月的開始時間戳,N為負數前數N月,N為正數后數N月 """ month_day = {1:31,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31} cur_y,cur_m,cur_d = [int(x) for x in time.strftime('%Y-%m-%d',time.localtime(ts)).split('-')] if (cur_y%4 == 0 and cur_y%100 != 0) or cur_y%400 == 0: month_day[2] = 29 else: month_day[2] = 28 t = get_day_begin(ts) - (cur_d-1)*86400 real_month = N + cur_m if real_month == cur_m: return t if N > 0: if real_month <= 12: for x in xrange(cur_m,real_month): t += month_day[x]*86400 if real_month > 12: for x in xrange(cur_m,13): t += month_day[x]*86400 t = get_month_begin(t,real_month - 13) if N < 0: if real_month >= 1: for x in xrange(real_month,cur_m): t -= month_day[x]*86400 if real_month < 1: for x in xrange(1,cur_m): t -= month_day[x]*86400 t -= month_day[12]*86400 t = get_month_begin(t,real_month) return t if __name__ == "__main__": t = time.time() print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(get_day_begin(t,1))) print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(get_week_begin(t,-2))) print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(get_month_begin(t,-3)))
看完上述內容,你們對Python中怎么判斷統計每個月的天數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。