2017-09-14 1 views
0

Comment calculer le nombre d'heures/minutes entre deux objets DateTime, à l'exclusion des heures d'arrêt.Calculer les heures de service entre deux objets DateTime

Par exemple, je veux calculer le nombre d'heures de service entre 2017-09-13 17:50 et 2017-09-15 10:30, tandis que les heures de service sont tous les jours 09:00-18:00.

J'aimerais trouver une solution efficace pour cela.

+0

Vous regardez un lib/gem ou quelque chose comme ça? –

+0

Je ne suis pas sûr si une gemme peut fournir ce genre de fonctionnalité? –

Répondre

1

Vous pourriez être intéressé par ce petit bijou working_hours

require 'working_hours' 

WorkingHours::Config.with_config(
    working_hours: { 
    mon: {'09:00' => '18:00'}, 
    tue: {'09:00' => '18:00'}, 
    wed: {'09:00' => '18:00'}, 
    thu: {'09:00' => '18:00'}, 
    fri: {'09:00' => '18:00'}, 
    sat: {'09:00' => '18:00'}, 
    sun: {'09:00' => '18:00'}, 
    } 
) do 
    from = Time.parse('2017-09-13 17:50') 
    to = Time.parse('2017-09-15 10:30') 

    # in "seconds" 
    service_hours = from.working_time_until(to) 
end 
+0

Merci mon pote. Vous avez sauvé ma journée :) –

+0

@RamizRaja Cool. Aucun problème! :) –