日期轉換方式有很多種寫法,在此介紹比較簡單易懂且常用的方式︰
1.先把日期去掉("/" or "-" or ".")等符號,轉成字串形態(yyyymmdd or yymmdd),接著在相加或相減19110000
〔EX: 2012/08/05 or 2012-08-05 2012.08.05 ==>20120805 註︰月及日一定要各兩碼,不足前面補0〕
〔EX: 2012/08/05 or 2012-08-05 2012.08.05 ==>20120805 註︰月及日一定要各兩碼,不足前面補0〕
西元(yyyymmdd)轉民國
date1="20120805" - 19110000 date1 輸出︰1010805
民國轉西元(yyyymmdd)
date2=19110000 + "1010805" date2 輸出︰20120805
date1="20120805" - 19110000 date1 輸出︰1010805
民國轉西元(yyyymmdd)
date2=19110000 + "1010805" date2 輸出︰20120805
2.只針對年份做相加或相減1911,且可保有("/" or "-" or ".")等符號
西元轉民國 (PS:假設今日NOW()為 2012/12/22)
date3=year(now())-1911 & mid(FormatDateTime(now(),2),5) date3 輸出︰101/12/22
民國轉西元
strDate = "101/12/22"
DateArr = Split(strDate, "/")
date4=Cint(DateArr(0))+1911 & mid(strDate,len(DateArr(0))+1) date4 輸出︰2012/12/22
strDate = "101/12/22"
DateArr = Split(strDate, "/")
date4=Cint(DateArr(0))+1911 & mid(strDate,len(DateArr(0))+1) date4 輸出︰2012/12/22
通常若要做日期比較或運算建議採用第一種寫法,若要顯示於螢幕上或報表上建議採用第二種方式。
總之不管採用任何哪一種方式,都可以達到所要的結果,只是多一個步驟或少一個步驟而已。
〔如第一種寫法產生結果也可以像第二種產生結果一樣,需多加個拆解及合併動作,反之亦然〕
總之不管採用任何哪一種方式,都可以達到所要的結果,只是多一個步驟或少一個步驟而已。
〔如第一種寫法產生結果也可以像第二種產生結果一樣,需多加個拆解及合併動作,反之亦然〕
沒有留言:
張貼留言