我有一個(gè)分時(shí)段計(jì)費(fèi)的場(chǎng)景,比如時(shí)段為
$rates = [
{
"start" => "00:00",
"end" => "12:00",
"rate" => 3
},
{
"start" => "12:00",//開(kāi)始時(shí)間
"end" => "24:00", //結(jié)束時(shí)間
"rate" => 4 //分鐘單價(jià)
}
]
這個(gè)時(shí)段也可能跨天類似下面的
$rates = [
{
"start" => "12:00",
"end" => "02:00",
"rate" => 3
},
{
"start" => "02:00",//開(kāi)始時(shí)間
"end" => "12:00", //結(jié)束時(shí)間
"rate" => 4 //分鐘單價(jià)
}
]
我想實(shí)現(xiàn)一個(gè)方法
public static function calculateCost($start, $end, $rates){
//這里就是算法了
}
我傳入開(kāi)始時(shí)間,結(jié)束時(shí)間,根分時(shí)段價(jià)格的數(shù)組,這個(gè)方法可以告訴我費(fèi)用,開(kāi)始時(shí)間根結(jié)束時(shí)間要考慮跨天的情況,比如23:30-03:10這種消費(fèi)的情況,大哥們有做過(guò)類似的嗎,chatgpt太笨了,總是忽悠我。。。。。
這個(gè)簡(jiǎn)單,根據(jù)設(shè)置的數(shù)據(jù)把每一分鐘或者每個(gè)小時(shí)都設(shè)置一個(gè)金額存儲(chǔ),然后根據(jù)當(dāng)前小時(shí)計(jì)算價(jià)格
你的$rates這是個(gè)什么類型????
一天1440分鐘,每個(gè)分鐘對(duì)應(yīng)一個(gè)rate價(jià)格刻度,這就是一個(gè)數(shù)組$calculate 例如 [3,3,3,3,3,4,4,4,4,4,3,3,3]一共有1440個(gè)鍵
鍵的值就是rate分鐘單價(jià),$rate還里面還可以設(shè)置更多數(shù)組分更多時(shí)間段,只要是24個(gè)小時(shí)就行
foreach $calculate 在里面取值,然后相加,最后就得到了總的消費(fèi)金額
以下是具體實(shí)現(xiàn)
23:30時(shí)間對(duì)應(yīng)的鍵就是1410。03:10對(duì)應(yīng)190,end小于start說(shuō)明跨天了,那就取1-190鍵的值之和,1410-1440 值之和,相加就是最終消費(fèi)金額
大致邏輯 僅供參考
我實(shí)在太無(wú)聊了,坐等魔獸國(guó)服
我看看我能舉一反二不,現(xiàn)在是開(kāi)始時(shí)間結(jié)束時(shí)間固定了,其實(shí)我的業(yè)務(wù)還有個(gè)更惡心的金額固定,就是我就100元,我能玩多久,變態(tài)的玩意