2016-10-02 30 views
0

我正在研究一個webapp,它應該用幾個TimeField對象來計算。不,我堅持一點。如何將不同的TimeFields加在一起並從結果TimeField中減去DecimalField。 我試過不同的方法。例如,將TimeFields轉換爲str-object(這不起作用...)。有沒有人知道我該如何處理這個問題?一個小暗示對我來說是一種樂趣。 謝謝!用多個TimeFields計算Django

回答

1

你是什麼其實試圖做? :)我必須猜測開始...

記住TimeField s進行datetime.time對象,這是「時鐘時間」,即從午夜到午夜。 我假設你想將它們轉換爲可以在算術上處理的表單 - 自午夜以來的秒數可以正常工作。

爲了簡單起見,我在這裏使用原始datetime.time對象,但是它與Django的TimeFields是一樣的。

import datetime, decimal 

def to_seconds_after_midnight(t): 
    return t.hour * 60 * 60 + t.minute * 60 + t.second + (t.microsecond/1000000.) 

hourly_fee = decimal.Decimal(90) # for example. 

time_1 = datetime.time(13, 15) 
time_2 = datetime.time(16, 20) 

second_interval = decimal.Decimal(
    to_seconds_after_midnight(time_2) - 
    to_seconds_after_midnight(time_1) 
) 
print(hourly_fee * (second_interval/60/60)) # The output is 277.5. 

HTH :)