Maison > développement back-end > C++ > Comment puis-je arrondir un DateTime à l'incrément de temps le plus proche en C# ?

Comment puis-je arrondir un DateTime à l'incrément de temps le plus proche en C# ?

Barbara Streisand
Libérer: 2025-01-06 19:06:40
original
449 Les gens l'ont consulté

How Can I Round Up a DateTime to the Nearest Time Increment in C#?

Arrondir DateTime à l'incrément de temps le plus proche

Dans de nombreux scénarios de programmation, arrondir une valeur DateTime à l'incrément de temps spécifique le plus proche devient nécessaire. Par exemple, une exigence courante consiste à arrondir aux 15 minutes les plus proches pour s'aligner sur les contraintes du calendrier professionnel.

Pour répondre à ce besoin, une fonction simple et efficace appelée RoundUp peut être utilisée. Il prend deux paramètres : une valeur DateTime et un TimeSpan représentant l'incrément souhaité.

Implémentation de la fonction :

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 :

L'extrait de code suivant montre comment appliquer la fonction RoundUp à diverses valeurs DateTime avec un incrément de 15 minutes :

// Round up to nearest 15-minute increment
var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// Output: {11/08/2011 17:00:00}

var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(15));
// Output: {11/08/2011 17:00:00}

var dt3 = RoundUp(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(15));
// Output: {11/08/2011 17:15:00}
Copier après la connexion

Dans cet exemple :

  • dt1 avec une valeur initiale de "16:59" est arrondi à "17:00".
  • dt2 avec une valeur initiale de "17:00" reste inchangé puisqu'il tombe déjà sur un horaire de 15 minutes limite.
  • dt3 avec une valeur initiale de "17:01" est arrondi à "17:15".

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal