奇怪的Js時間計算方法,跨多個月後出現1天的誤差

2022-01-23 08:20:49 字數 716 閱讀 3731

在專案中要求用計算兩個時間相差的天數,通俗的說就是兩個時間 相減,

我的方法 先把兩個時間轉成相應的毫秒,相減後,再除以(

1000*60

*60*24

) 就可以得到對應天數,但天數會比實際少一天所以需要再加上一天

**如下

function

datediff()

當時測試沒有跨好幾個月,發現都沒有問題,直到測試人員提了bug然後自己仔細測終於發現了

bug:開始日期為:06/08/2013     結束日期為:30/11/2013  計算的結果為116 

然後將結束日期改為:01/12/2013 計算的結果居然為118,無緣無故的多出來了1天 

然後償試換種寫法方法式都是把時間轉成毫秒後相減再除(1000 * 60 * 60 * 24) 結果都多了一天,

最後檢視了js 文件才知道原來 js moth預設是從0開始的,所以應該把月都減1  

date(adate[2], adate[1]-1, adate[0])

這樣計算就會得到正確的天數

還有一種用c#**去算也是可以的**如下:

1

int nights =0;2

if (!string.isnullorempty(starttime) && !string

.isnullorempty(endtime))

3

ios 計算方法執行的時間

在ios開發中,有時我們需要考慮方法執行的時間來做優化,比方查詢資料庫的方法 需要知道查詢資料的時間 具體的計算方法如下 1 新建乙個檔案 calculateruntime.h inte ce calculateruntime nsobject cgfloat bunrtimeblock void ...

時間複雜度的計算方法

1.1 頻度統計法。頻度統計法指以程式中語句執行次數的多少作為演算法時間度量分析的一種方法。通常情況下,演算法的時間效率主要取決於程式中包含的語句條數和採用的控制結構這兩者的綜合效果。因此,最原始且最牢靠的方法是求出所有主要語句的頻度f n 然後求所有頻度之和。例如 如下形式的語句段 for i 1...

間隔時間Delta T和時間總長的計算方法

訊號處理或ffmpeg中,間隔時間戳為 presentation time delta t frame size sample rate frame size 每幀資料對應的位元組數 sample rate 取樣率,是指將模擬聲音波形進行數位化時,每秒鐘抽取聲波幅度樣本的次數 presentatio...