還是使用者使用者餘額對比的需求指令碼。有乙個錯誤需要糾正。
這個錯誤比較重要,所以開此文作一說明。
我們這個指令碼做的事情是,每天跑乙份,今天與昨天的差異資料對比excel表,並傳送。
如下圖:
需要注意的是這個表日期這個數字是怎麼寫進去的。
原先我們是這麼寫的
today = datetime.datetime.today()
def這樣寫測試的時候沒有問題,那是因為測試的時候不是1號!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是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並不需要做什麼if handle.day==1之類的判斷。如上的處理方法就很精明。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
直接用昨天.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...