使用javascript细分和隔离时间

时间:2012-05-08 17:32:36

标签: javascript algorithm math time datejs

我正在建立一个豪华轿车服务的网站,该网站应提供您事先请求的服务的价格。

常规服务是每分钟1美元。但是,从午夜到早上8点的所有时间都被视为高级版,价格为2美元。

现在,这是复杂的部分。我需要隔离客户在正常时间和保费上支付的时间,以便产生价格。

例如。如果服务时间是从晚上9点到凌晨2点,则客户以1美元/分钟支付3小时,以2美元/分钟支付2小时。

如何获得晚上9点和凌晨2点,并转换为180分钟+ 120分钟?

是的,我篡改了http://code.google.com/p/datejs/。但它只是没有用。有没有一个聪明的数学"这样做的方式?

感谢帮助人员:)

1 个答案:

答案 0 :(得分:0)

所以在A.M.它似乎并且完全不在P.M.所以只要减去他们从12点开始的时间,在你的例子12-9中,你得到3小时,然后将任何小时加到0为am,再次你的例子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结束,但那并不难。