0

私は、あなたが要求しているサービスの料金を事前に提供するリムジン サービスのウェブサイトを作成しています。

通常のサービスは 1 分 1 ドルです。ただし、真夜中から午前 8 時までは常にプレミアムと見なされ、2 ドルかかります。

さて、ここが複雑な部分です。価格を生成するために、クライアントが通常の時間とプレミアムで支払っている時間を分離する必要があります。

例えば。サービスが午後 9 時から午前 2 時までの場合、クライアントは 3 時間分を 1 ドル/分、2 時間分を 2 ドル/分で支払います。

午後 9 時と午前 2 時を取得して、180 分 + 120 分に変換するにはどうすればよいですか?

ところで、改ざんをhttp://code.google.com/p/datejs/に結び付けました。しかし、それはうまくいきませんでした。これを行うスマートな「数学」の方法はありますか?

助けてくれてありがとう:)

4

1 に答える 1

0

したがって、プレミアム時間はすべて午前にあり、午後にはないので、12 から午後の時間を差し引くだけです。例では 12-9 で 3 時間を取得し、午前の 0 に任意の時間を追加します。再びあなたの例 0+2 はもちろん 2 時間です。次に、分を取得するために 60 倍します。各金額が請求されている金額でその時間を取得したら、それらを合計します。am/pm は、変数をそれぞれ true/false に設定するトグルにします。

コードは次のようになります。

//start_time and end_time are objects that have 2 properties, am/pm
//which is a bool and time which is a int
function calc_time(start_time,end_time){
   var normal_pay;
   var premium_pay;
   if(start_time.pm == true){
     normal_pay = 12 - start_time.time;
     normal_pay = normal_pay * 60;
   } else{
     normal_pay = 0 + start_time.time;
     normal_pay = normal_pay * 60 * 2; //this is premium time the whole night was premium pay
   }

   if(end_time.am == true){
     premium_pay = 0 + end_time.time;
     premium_pay = premium_pay * 60 * 2;
   } else {
     premium_pay = 12 - end_time.time;
     premium_pay = premium_pay * 60; //this is normal time the whole night was normal pay
   }

   return premium_pay + normal_pay;
}

これは、午前 3 時 25 分に終了したいなどの議事録などを考慮する必要があるすべてを解決するわけではありませんが、それほど難しいことではありません。

于 2012-05-08T17:52:37.873 に答える