• # Date#upto

    Posté par . En réponse au message Algorithmes calculs de date. Évalué à 1.

    Si tu as vraiment besoin de perf sur cet algo et que tu compte l'utiliser sur des périodes longues ma méthode 'est certainement pas la bonne. Il est certainement possible d'écrire une "formule" pour calculer ça seulement avec les années bissextiles et compagnie ça risque d'être illisible, complexe à débugger et à améliorer si tu veux ajouter le support des jours fériés.

    Ma solution est donc dans le style de la tienne, mais en plus rubyique:


    def workday?(date)
    1 <= date.wday <= 5
    end

    workday_count_between(start_date, end_date)
    count = 0
    start_date.upto(end_date) do |date|
    count += 1 if workday?(date)
    end
    count
    end



    Si le mode de calcul change souvent tu peux aussi passer un block.
    NB: je l'ai écrite comme ça à l'arrache sans l'éxecuter, dsl pour les éventuelles erreurs