Comment arrondir un DateTime aux X minutes les plus proches avec C
Arrondir un DateTime au nombre de minutes spécifié le plus proche peut être utile dans une variété de scénarios . Voici une solution simple et efficace pour cette tâche :
- Créer une fonction utilitaire RoundUp :
public static DateTime RoundUp(DateTime dt, TimeSpan d)
{
return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind);
}
Copier après la connexion
- Utilisation :
Pour arrondir un DateTime aux 15 minutes les plus proches, utilisez le code suivant :
var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// dt1 == {11/08/2011 17:00:00}
Copier après la connexion
- Comprendre le code :
- La fonction RoundUp prend un DateTime (dt) et un TimeSpan (d) représentant l'intervalle d'arrondi.
- L'expression (dt.Ticks d.Ticks - 1) calcule la valeur de tick la plus proche divisible par d.Ticks.
- La division et la multiplication par d.Ticks garantissent que le résultat est arrondi à l'intervalle spécifié.
- Le nouveau DateTime est créé avec le calcul ticks et du même type (local/UTC) que le DateTime d'origine.
Exemple Sortie :
- Entrée : 2011-08-11 16:59
- Résultat : 2011-08-11 17:00
Supplémentaire Notes :
- Cette approche arrondit au nombre entier d'intervalles le plus proche, quel que soit le fuseau horaire.
- Pour arrondir vers le bas, remplacez (dt.Ticks d.Ticks - 1) avec (dt.Tiques 1).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!