今天看到群裡有人提問,上次培訓開發的「報銷管理軟體」中存在bug,就是由日期產生的編號問題。
原來的vba**如下:
原文內容:
今天改乙個生成id的函式,要求以yyyymmdd的形式產生id,但是vbscript中產生的日期格式可能會成為yyyymd的形式,也就是去掉了高位上的0,查詢了vbscript的日期和時間函式,沒找到合適的函式。
以前曾經做過類似的東西,大概是判斷數字是否小於10,然後追加前導0。(剛看了點演算法的東西,順便用一下,咱也來寫個偽**:p)
//date()為獲得當前日期的函式,預設格式yyyy-mm-dd mm和dd可能只有個位數字
//year(),month(),day()是從日期中抽取相應的數字
//strid就是要得到的結果了
strid=year(date())&formatstr(month(date()))&formatstr(day(date()))
formatstr(m)
//m為要格式化的數字
if cint(m)<10
m=0&cint(m)
return m
哈哈,這就是乙個演算法的偽**了
這樣實現很直接,下面有更直接的,直接提取十位數字跟個位數字,然後拼起來就行了。
偽**:
formatchar(m)
m=fix(m/10)&(m-fix(m/10)*10)
return m
其實差不多,只是下面這個可以不用寫函式,直接寫在一行裡面就行了。
strid=year(date())&fix(month(date())/10)&(month(date())-fix(month(date())/10)*10)&fix(day(date())/10)&(day(date())-fix(day(date())/10)*10)
==================
以上這個太煩了,僅做為參考。
個人認為還是下面這個好用,簡單易用:
today=year(date()) & "-" & right("0" & month(date()),2) & "-" & right("0" & day(date()),2)
*************************===
記住了:
right("0" & month(date()),2)
兩位數字金額轉化為大寫格式
iv money abs iv money data scr 30 type c,res 60 type c,fen 2 type c data len type i,c1 type i,c2 type i,c3 type i,c4 type i.data d1 1 type c,d2 1 type...
日期格式化中,不足兩位數補0的方法
1 第一種是我們現在最常用的方法 formattime 年 月 日 2 新的es語法可以使用 padstart padend 來新增 let date new date let month date.getmonth 1 month month 先將其轉化成字串 month month.padsta...
mysql把日期格式化 月份兩位
select date format now y年 m月 select plc.id,plc.policy no,plc.out date,og.organ name,ir.insurer name,pd.product name,plc.policy amount,plc.channel,plc....