diff --git a/src/Humanizer.Tests.Shared/Localisation/fr/TimeToClockNotationTests.cs b/src/Humanizer.Tests.Shared/Localisation/fr/TimeToClockNotationTests.cs index 042da19f4..0bca82c3f 100644 --- a/src/Humanizer.Tests.Shared/Localisation/fr/TimeToClockNotationTests.cs +++ b/src/Humanizer.Tests.Shared/Localisation/fr/TimeToClockNotationTests.cs @@ -2,8 +2,6 @@ using System; using Xunit; -using Humanizer.Localisation.TimeToClockNotation; -using Humanizer; namespace Humanizer.Tests.Localisation.fr { @@ -12,19 +10,21 @@ public class TimeToClockNotationTests { [Theory] [InlineData(00, 00, "minuit")] - [InlineData(01, 00, "une heure")] + [InlineData(00, 07, "minuit sept")] + [InlineData(01, 11, "une heure onze")] [InlineData(04, 00, "quatre heures")] [InlineData(05, 01, "cinq heures une")] [InlineData(06, 05, "six heures cinq")] [InlineData(07, 10, "sept heures dix")] - [InlineData(08, 15, "huit heures et quart")] + [InlineData(08, 15, "huit heures quinze")] [InlineData(09, 20, "neuf heures vingt")] [InlineData(10, 25, "dix heures vingt-cinq")] - [InlineData(11, 30, "onze heures et demie")] + [InlineData(11, 30, "onze heures trente")] [InlineData(12, 00, "midi")] + [InlineData(12, 38, "midi trente-huit")] [InlineData(15, 35, "quinze heures trente-cinq")] - [InlineData(16, 40, "dix-sept heures moins vingt")] - [InlineData(17, 45, "dix-huit heures moins le quart")] + [InlineData(16, 40, "seize heures quarante")] + [InlineData(17, 45, "dix-sept heures quarante-cinq")] [InlineData(18, 50, "dix-huit heures cinquante")] [InlineData(19, 55, "dix-neuf heures cinquante-cinq")] [InlineData(20, 59, "vingt heures cinquante-neuf")] @@ -36,20 +36,23 @@ public void ConvertToClockNotationTimeOnlyString(int hours, int minutes, string [Theory] [InlineData(00, 00, "minuit")] + [InlineData(00, 07, "minuit cinq")] + [InlineData(01, 11, "une heure dix")] [InlineData(04, 00, "quatre heures")] [InlineData(05, 01, "cinq heures")] [InlineData(06, 05, "six heures cinq")] [InlineData(07, 10, "sept heures dix")] - [InlineData(08, 15, "huit heures et quart")] + [InlineData(08, 15, "huit heures quinze")] [InlineData(09, 20, "neuf heures vingt")] [InlineData(10, 25, "dix heures vingt-cinq")] - [InlineData(11, 30, "onze heures et demie")] + [InlineData(11, 30, "onze heures trente")] [InlineData(12, 00, "midi")] + [InlineData(12, 38, "midi quarante")] [InlineData(13, 23, "treize heures vingt-cinq")] - [InlineData(14, 32, "quatorze heures et demie")] + [InlineData(14, 32, "quatorze heures trente")] [InlineData(15, 35, "quinze heures trente-cinq")] - [InlineData(16, 40, "dix-sept heures moins vingt")] - [InlineData(17, 45, "dix-huit heures moins le quart")] + [InlineData(16, 40, "seize heures quarante")] + [InlineData(17, 45, "dix-sept heures quarante-cinq")] [InlineData(18, 50, "dix-huit heures cinquante")] [InlineData(19, 55, "dix-neuf heures cinquante-cinq")] [InlineData(20, 59, "vingt et une heures")] diff --git a/src/Humanizer/Localisation/TimeToClockNotation/FrTimeOnlyToClockNotationConverter.cs b/src/Humanizer/Localisation/TimeToClockNotation/FrTimeOnlyToClockNotationConverter.cs index 17ade99e5..88dadbe56 100644 --- a/src/Humanizer/Localisation/TimeToClockNotation/FrTimeOnlyToClockNotationConverter.cs +++ b/src/Humanizer/Localisation/TimeToClockNotation/FrTimeOnlyToClockNotationConverter.cs @@ -9,14 +9,6 @@ internal class FrTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotationConv { public virtual string Convert(TimeOnly time, ClockNotationRounding roundToNearestFive) { - switch (time) - { - case { Hour: 0, Minute: 0 }: - return "minuit"; - case { Hour: 12, Minute: 0 }: - return "midi"; - } - var normalizedMinutes = (int)(roundToNearestFive == ClockNotationRounding.NearestFiveMinutes ? 5 * Math.Round(time.Minute / 5.0) : time.Minute); @@ -24,17 +16,18 @@ public virtual string Convert(TimeOnly time, ClockNotationRounding roundToNeares return normalizedMinutes switch { 00 => GetHourExpression(time.Hour), - 15 => $"{GetHourExpression(time.Hour)} et quart", - 30 => $"{GetHourExpression(time.Hour)} et demie", - 40 => $"{GetHourExpression(time.Hour + 1)} moins vingt", - 45 => $"{GetHourExpression(time.Hour + 1)} moins le quart", 60 => $"{GetHourExpression(time.Hour + 1)}", _ => $"{GetHourExpression(time.Hour)} {normalizedMinutes.ToWords(GrammaticalGender.Feminine)}" }; static string GetHourExpression(int hour) { - return hour.ToWords(GrammaticalGender.Feminine) + (hour > 1 ? " heures" : " heure"); + return hour switch + { + 0 => "minuit", + 12 => "midi", + _ => hour.ToWords(GrammaticalGender.Feminine) + (hour > 1 ? " heures" : " heure") + }; } } }