Board logo

標題: Format與Text的差異 [打印本頁]

作者: clio    時間: 2019-6-6 10:00     標題: Format與Text的差異

Hi 各位前輩,
小弟我最近發現一個問題,在用Format取得二個時間也的相減值時,與Text的方法顯示會有所不同?一直找不到原因,特上來求解答題目如下:
    Dim aDate As Date
    aDate = Now
   
    aDate = Now - aDate
    Debug.Print Format(aDate, ["d天h時m分s秒"])
    Debug.Print Application.Text(aDate, ["d天h時m分s秒"])

    Format顯示的是【30天0時0分1秒】
    Text顯示的是【0天0時0分1秒】
為什麼Format會有多出30天呢?還請知道的前輩幫小弟我解惑一下,感謝您。
作者: n7822123    時間: 2019-6-6 22:17

本帖最後由 n7822123 於 2019-6-6 22:20 編輯

回復 1# clio


加上年月之後,發現起算的時間不一樣!?
因時間間隔太小,可直接代0,產生的一樣結果

Debug.Print Format(0, ["yyyy年m月d日h時m分s秒"])
Debug.Print Application.Text(0, ["yyyy年m月d日h時m分s秒"])

結果:
1899年12月30日0時0分0秒
1900年1月0日0時0分0秒
作者: 准提部林    時間: 2019-6-7 10:49

基本上, 兩個日期相減, 結果是"天數", 而非一個標準日期,
再使用format或text去取, 是根本上的錯誤,
MsgBox Application.Text(32, "d天")  >>> 結果就不是32天
何況, format及text的起算日期並不相同~~
作者: clio    時間: 2019-6-18 09:01

回復 3# 准提部林
感謝准提部林的提醒…我再想想別的辨法好了,感謝您
作者: clio    時間: 2019-6-18 09:02

回復 2# n7822123

感謝n7822123的告知,我再想想別的辨法,感謝您
作者: clio    時間: 2019-6-18 09:11

回復 3# 准提部林
再請教准提部林前輩:
假若我需要二個日期相減,得出差異的時間,需要細到有【w天x時y分z秒】這樣的話,我應該要怎麼做比較正確呢?
作者: 准提部林    時間: 2019-6-18 10:06

回復 6# clio


a1 起始日期時間
b1 結束日期時間
[C1] = Int([B1] - [A1]) & "天" & Format([B1] - [A1], "hh時mm分ss秒")
作者: clio    時間: 2019-6-18 13:05

回復 7# 准提部林
感謝准提部林的回覆…太感謝您了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)