第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何找到兩個(gè)日期之間的天數(shù)差異?

如何找到兩個(gè)日期之間的天數(shù)差異?

九州編程 2019-11-15 13:08:04
A =“ 2002-20-10”B =“ 2003-22-11”如何找到兩個(gè)日期之間的天數(shù)差異?
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您有GNU date,它允許打印任意日期的表示形式(-d選項(xiàng))。在這種情況下,將日期轉(zhuǎn)換為自EPOCH以來的秒數(shù),然后減去并除以24 * 3600。

還是您需要一種便攜式方式?


查看完整回答
反對(duì) 回復(fù) 2019-11-15
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

bash方式-將日期轉(zhuǎn)換為%y%m%d格式,然后可以從命令行直接執(zhí)行以下操作:


echo $(( ($(date --date="031122" +%s) - $(date --date="021020" +%s) )/(60*60*24) ))


查看完整回答
反對(duì) 回復(fù) 2019-11-15
?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

小心!這里的許多bash解決方案都打破了日期范圍,該日期范圍跨越了夏令時(shí)開始的日期(如果適用)。這是因?yàn)?((math))構(gòu)造對(duì)結(jié)果值執(zhí)行了“ floor” /截?cái)嗖僮?,僅返回整數(shù)。讓我說明一下:


DST于今年3月8日在美國(guó)開始,因此我們使用一個(gè)跨越以下日期范圍的日期:


start_ts=$(date -d "2015-03-05" '+%s')

end_ts=$(date -d "2015-03-11" '+%s')

讓我們看看使用雙括號(hào)可以得到什么:


echo $(( ( end_ts - start_ts )/(60*60*24) ))

返回“ 5”。


使用'bc'更精確地執(zhí)行此操作會(huì)給我們帶來不同的結(jié)果:


echo "scale=2; ( $end_ts - $start_ts )/(60*60*24)" | bc

返回“ 5.95”-缺少的0.05是DST切換所損失的小時(shí)數(shù)。


那么應(yīng)該如何正確完成呢?

我建議改用這個(gè):


printf "%.0f" $(echo "scale=2; ( $end_ts - $start_ts )/(60*60*24)" | bc)

在這里,“ printf”舍入由“ bc”計(jì)算出的更準(zhǔn)確的結(jié)果,從而為我們提供了正確的日期范圍“ 6”。


編輯:在下面@ hank-schultz的評(píng)論中突出顯示答案,我最近一直在使用它:


date_diff=$(( ($(date -d "2015-03-11 UTC" +%s) - $(date -d "2015-03-05 UTC" +%s) )/(60*60*24) ))

只要您總是從較晚的日期中減去較早的日期,這也應(yīng)該是leap秒安全的,因?yàn)閘eap秒只會(huì)增加差異-截?cái)嘤行У厣崛霝檎_的結(jié)果。


查看完整回答
反對(duì) 回復(fù) 2019-11-15
  • 3 回答
  • 0 關(guān)注
  • 742 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)