2013年7月16日 星期二

日期轉換(西元<-->民國)

日期轉換方式有很多種寫法,在此介紹比較簡單易懂且常用的方式︰
1.先把日期去掉("/" or "-" or ".")等符號,轉成字串形態(yyyymmdd or yymmdd),接著在相加或相減19110000
 〔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

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
 
通常若要做日期比較或運算建議採用第一種寫法,若要顯示於螢幕上或報表上建議採用第二種方式
總之不管採用任何哪一種方式,都可以達到所要的結果,只是多一個步驟或少一個步驟而已。
〔如第一種寫法產生結果也可以像第二種產生結果一樣,需多加個拆解及合併動作,反之亦然〕

沒有留言: