球場分時段計費演算法

2021-08-25 05:35:23 字數 1847 閱讀 5314

球場分時段計費演算法   

1.輸入資料   開始結束時間

2.變數(時間段,單價,初始價,封頂價)

3.思路 :(1).傳入開始結束時間,提取必要的對比資訊(開始結束小時,時間戳,經過時長)。(2.)根據時間建立1-2的陣列。(2.迴圈時間陣列,呼叫不同時間段的計價方法)

不廢話,直接貼貼**

public $stime = "2018-08-04 23:41:00";//開始時間

public $etime = "2018-08-05 19:55:00";//結束時間

public $h1=6; //第一時段結束 第二時段開始的小時

public $h2=12;//第二時段結束 第三時段開始的小時

public $h3=18;//第三時段結束 第四時段開始的小時

public $b_price=10; //起步價1

public $price1=0.1;   // 第一時段**

public $price2=0.2;   // 第二時段**

public $price3=0.3;   // 第三時段**

public $price4=0.5;   // 第四時段**

public $top1=22;     //封頂價1

public $top2=25;     //封頂價2

public $top3=28;     //封頂價3

public $top4=32;     //封頂價4

public $sum=0;//總價

public $sum1=0;//第1時段**

public $sum2=0;//第2時段**

public $sum3=0;//第3時段**

public $sum4=0;//第4時段**

public $sum2_1=0;//第2-1時段**

public $sum2_2=0;//第2-2時段**

public $sum2_3=0;//第2-3時段**

public $sum2_4=0;//第2-4時段**

/*** 球場計價演算法

* @param 開始 結束時間

* @return string  消費金額,消費時段,消費明細

//從開始世時間 左側開始擷取

if($sth >= 0 && $sth < $this->h1)

else if($sth >= $this->h1 && $sth < $this->h2)

else if($sth >= $this->h2 && $sth < $this->h3)

else if($sth >= $this->h3 && $sth < 24)

//dump($et_st_00>86400?$eth+24:$eth);

//從結束時間  右側開始擷取  結束時間不能=設定的時間點

if($eth>= $this->h3 && $eth< 24  && $et_st_00 - $this->h3*3600>0)

else if($eth>= $this->h2 && $eth<= $this->h3 && $et_st_00 - $this->h2*3600>0)

else if($eth>= $this->h1 && $eth<= $this->h2 && $et_st_00 - $this->h1*3600>0)

else if($eth>= 0 && $eth<= $this->h1)

使用SQL 的CASE 語句做分時段統計

某日老闆突然要求,想看各時段的訂單數量。心想,訂單表中有紀錄時間點,這應該不成問題,只是這 sql 語句該如何下?如果乙個小時統計一次,總不能分24次吧!訂單資料表 orders 如下 希望得出的結果如下 利用 case 語句就能完成任務。select case when date format t...