2 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
所有將 開始時(shí)間
和 結(jié)束時(shí)間
做比較的操作都需要考慮日期,不能只考慮小時(shí)時(shí)間。比如第二天的任何時(shí)間要晚于前一天的任何時(shí)間。
第2步的目的是規(guī)范化開始時(shí)間,方便后面的計(jì)算。
這里計(jì)算一整天(8點(diǎn)~第2天8點(diǎn))的費(fèi)用應(yīng)以108來(lái)計(jì)算,而不是112:(21-8)*8+4=108
,因?yàn)橐归g21點(diǎn)到第2天8點(diǎn)只能算一次停車,因此費(fèi)用是4元。
舉幾個(gè)例子吧,就當(dāng)是順便測(cè)試一下算法了:
開始時(shí)間=5點(diǎn),結(jié)束時(shí)間=7點(diǎn)(同一天):
(1) total=0 (2) 因?yàn)殚_始時(shí)間在8點(diǎn)前,因此total=4,開始時(shí)間設(shè)置為8點(diǎn)整 (3) 此時(shí)結(jié)束時(shí)間比開始時(shí)間早,因此直接返回total=4
開始時(shí)間=22點(diǎn),結(jié)束時(shí)間為第二天8點(diǎn)整:
(1) total=0 (2) 開始時(shí)間在21點(diǎn)后,因此total=4,然后開始時(shí)間=第二天8點(diǎn) (3) 此時(shí)結(jié)束時(shí)間與開始時(shí)間相等,因此直接返回total=4
開始時(shí)間=7點(diǎn),結(jié)束時(shí)間為第二天9點(diǎn)(你的例子):
(1) total=0 (2) total=4,開始時(shí)間設(shè)置為8點(diǎn) (3) 跳過 (4) 整數(shù)天數(shù)為1天,total=4+108=112,開始時(shí)間變?yōu)榱说?天8點(diǎn) (5) 結(jié)束時(shí)間9點(diǎn),total=112+(9*2-16)*4=112+8=120
開始時(shí)間=7點(diǎn),結(jié)束時(shí)間為第二天22點(diǎn):
(1) total=0 (2) total=4,開始時(shí)間設(shè)置為8點(diǎn) (3) 跳過 (4) 整數(shù)天數(shù)為1天,total=4+108=112,開始時(shí)間變?yōu)榱说?天8點(diǎn) (5) 結(jié)束時(shí)間大于21點(diǎn),total=112+4+(21-8)*8=220
添加回答
舉報(bào)