45e86543a1
Sur une demande d'un seul jour, le formulaire recopie la demi-journée de début sur la fin (même date), si bien que les deux bornes portaient une demi-journée et 0,5 était soustrait deux fois (1 - 0,5 - 0,5 = 0). Quand start et end tombent le même jour, les deux bornes se confondent : on ne soustrait désormais 0,5 qu'une seule fois. Comparaison par getTimestamp() pour rester compatible strict_comparison (=== sur deux DateTimeImmutable distincts teste l'identité d'instance, pas la valeur). Couverture complétée : mono-jour plein, week-end, férié, inversion de dates, demi-journée de fin seule, demi sur samedi en mode ouvrables. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>