2012-09-18 58 views
0

我正在研究一個應用程序,該程序將跟蹤用戶的工作時間,然後從此數據生成圖形...
考慮到他們可以在今天開始完成任何任務並完成它明天,我不能保存一個Date ... 現在,我保存整數字段,如hours和整數minute ...
有沒有一種方法(一些寶石,也許)來幫助我處理這種問題?
還是其他方法?
感謝處理「加工時間」

我班Atendimento包含所有必要的數據

class Atendimento < ActiveRecord::Base 
    attr_accessible :horas, :minutos, :empresa, :tipo_atendimento, :observacao, :empresa_id, :tipoatendimento_id 

    belongs_to :empresa 
    belongs_to :tipo_atendimento, :foreign_key => 'tipoatendimento_id' 
    belongs_to :usuario 

    validates :horas, :minutos, presence: true 
end 

回答

0

我節省了工作時間爲秒:)

1

我想補充兩個日期時間列到你的數據庫來跟蹤的啓動和停止時的時間戳。然後你可以減去這兩個值來獲得時間。

+0

我不是很清楚......我不能這樣做,因爲當只有5個留下來結束分鐘,用戶可以啓動任務的工作時間和另一天的任務繼續......他甚至可以在今天開始任務,並在一週內完成任務 –

1

而不是三個字段,你應該添加開始和結束時間作爲時間戳。您可以將這些行添加到遷移文件中:

add_column :tasks, :started_at, :timestamp 
add_column :tasks, :ended_at, :timestamp 

在模型中,您可以使用這些時間戳進行計算。

class Task < ActiveRecord::Base 
    attr_accessible :started_at, :ended_at 
    validates :started_at, presence: true 
    validates :ended_at, presence: true 

    # Returns the duration of the task in seconds 
    def duration 
    ended_at - started_at 
    end 
end 
+0

請參閱我對@ Beerlington的回答 –

+0

@LuizE的評論。好的。我仍然會像這樣將開始和結束時間戳記錄到數據庫中。那麼你只需要爲持續時間函數提出更復雜的邏輯。如果任務可以在週末結束,您可能還想考慮週末和假期。也許有人可以設計一些僞代碼? (我甚至可以稍後再做)。 –

+0

@LuizE。我建議你看看這個問題:http://stackoverflow.com/questions/3708881/counting-regular-working-days-in-a-given-period-of-time –