詳解 每日指令碼跨月時的日期問題

2021-07-09 08:30:46 字數 2243 閱讀 9972

還是使用者使用者餘額對比的需求指令碼。有乙個錯誤需要糾正。

這個錯誤比較重要,所以開此文作一說明。

我們這個指令碼做的事情是,每天跑乙份,今天與昨天的差異資料對比excel表,並傳送。

如下圖:

需要注意的是這個表日期這個數字是怎麼寫進去的。

原先我們是這麼寫的

today = datetime.datetime.today()

def 

writeexcelheader():

'''寫excel

表表頭'''

wb = xlwt.workbook(encoding = "utf-8"

, style_compression = true)

sht0 = wb.add_sheet("

餘額資訊對比列表",

cell_overwrite_ok = true)

sht0.col(0).width=3000

sht0.col(1).width=4000

sht0.col(2).width=4000

num=today.day

sht0.write(0, 0

, '使用者id'

, style1)

sht0.write(0, 1

, str(num-1)+'

日零點餘額

', style1)

sht0.write(0, 2

, str(num)+'

日零點餘額

', style1)

return wb

這樣寫測試的時候沒有問題,那是因為測試的時候不是1號!

如果1號的時候該指令碼執行,1-1是0,就會顯示0號餘額和1號餘額的對比表。

顯然是不妥的。

【日期數字生成方法】

對此我們作如下改進:

全域性變數部分

today = datetime.datetime.today()

todaystr = datetime.datetime.strftime(today

, "%y-%m-%d")

handledate = today - datetime.timedelta(1)

handledatestr = datetime.datetime.strftime(handledate,

"%y-%m-%d")

方法部分

def 

writeexcelheader():

'''寫excel

表表頭'''

wb = xlwt.workbook(encoding = "utf-8"

, style_compression = true)

sht0 = wb.add_sheet("

餘額資訊對比列表",

cell_overwrite_ok = true)

sht0.col(0).width=3000

sht0.col(1).width=4000

sht0.col(2).width=4000

daynum=today.day

lastdaynum = handledate.day

sht0.write(0, 0

, '使用者id'

, style1)

sht0.write(0, 1

, str(lastdaynum)+'

日零點餘額

', style1)

sht0.write(0, 2

, str(daynum)+'

日零點餘額

', style1)

return wb

並不需要做什麼if handle.day==1之類的判斷。如上的處理方法就很精明。

直接用昨天.day就可以。.day本身產生的數字就是不會出錯的。

這個方法要好好記住!

由此我們可以意識到。

由於時間單位的特殊性。不僅是在跨月的時候,在跨星期,跨小時,跨分鐘的時候,都需要注意這個。

同樣,需要某些數字的時候,不需要人為去設定,使用系統產生的數字就可以了。

因為,總會有能夠產生時間點數字的函式存在的!

如果沒有,自己寫乙個,總比自己判斷寫一堆if要好的多。

換裝demo時美術遇到的問題詳解

1.替換 max的東西進unity,根骨骼x軸會有270度的旋轉。解決方法 由程式強制 進入unity後的旋轉角度。2.蒙皮問題 face和hair等脖子以上部位蒙皮的時候,匯入unity後mesh節點會改變位置。解決方法 選一部分點,將權重賦予脖子以下任意骨骼,數值為0。替換 由於unity不識別...

連線遠端mysql時遇到的問題詳解

遇到問題 web專案連線遠端 伺服器 mysql 2003錯誤連線超時 連線mysql資料庫時丟擲pymysql.err.operationalerror 第一步 修改mysql配置檔案讓其他主機可以訪問mysql服務 例如 mysqld character set server utf8 bind...

安裝MySQL時,出現的1067問題詳解

今天安裝mysql,出現了很多問題,安裝成功了,但是啟動不了,一啟動就出現1067錯誤,安了一中午,接近崩潰,還好最後解決了,開森 於下總結 1.一開始發現配置my.ini檔案時出問題了,在新增安裝路徑和data路徑時,最後會有乙個空格,必須刪除,否則就會出錯 2.發現還是解決不了問題,就是my.i...