月份和日期格式化為兩位數

2021-09-30 03:18:05 字數 1159 閱讀 8720

今天看到群裡有人提問,上次培訓開發的「報銷管理軟體」中存在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....