-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTimeFormat.cs
More file actions
59 lines (53 loc) · 2.02 KB
/
TimeFormat.cs
File metadata and controls
59 lines (53 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
namespace HumanReadableTime;
/// <summary>
/// Fournit une méthode utilitaire permettant de convertir
/// un nombre de secondes en une représentation temporelle
/// lisible par un humain au format HH:MM:SS.
/// </summary>
public static class TimeFormat
{
/// <summary>
/// Convertit un nombre de secondes en une chaîne formatée
/// au format "HH:MM:SS".
/// </summary>
/// <param name="seconds">
/// Nombre total de secondes (valeur comprise entre 0 et 359999).
/// </param>
/// <returns>
/// Une chaîne représentant le temps sous la forme HH:MM:SS.
/// </returns>
public static string GetReadableTime(int seconds)
{
// Calcul du nombre d'heures complètes
int hours = seconds / 3600;
// Calcul des minutes restantes après extraction des heures
int minutes = (seconds % 3600) / 60;
// Calcul des secondes restantes
int secs = seconds % 60;
// Formatage avec deux chiffres (padding automatique avec '0')
return $"{hours:D2}:{minutes:D2}:{secs:D2}";
}
/// <summary>
/// Convertit un nombre de secondes en une chaîne formatée
/// au format "HH:MM:SS".
/// </summary>
/// <param name="seconds">
/// Nombre total de secondes compris entre 0 et 359999.
/// </param>
/// <returns>
/// Une chaîne représentant le temps au format HH:MM:SS.
/// </returns>
public static string GetReadableTimeV2(int seconds)
{
// Création d'un objet TimeSpan représentant la durée donnée.
TimeSpan time = TimeSpan.FromSeconds(seconds);
// TimeSpan fournit directement les heures, minutes et secondes.
// Attention : on utilise TotalHours pour gérer correctement
// les valeurs supérieures à 24h (ex: 99:59:59 dans ce kata).
int hours = (int)time.TotalHours;
int minutes = time.Minutes;
int secs = time.Seconds;
// Formatage avec deux chiffres pour chaque unité temporelle.
return $"{hours:D2}:{minutes:D2}:{secs:D2}";
}
}