Maison >développement back-end >C++ >Comment calculer et afficher avec précision le temps relatif en C #?

Comment calculer et afficher avec précision le temps relatif en C #?

Barbara Streisand
Barbara Streisandoriginal
2025-02-01 22:56:10274parcourir

How to Accurately Calculate and Display Relative Time in C#?

Affichage de temps relatif précis en C #

Calcul du temps écoulé entre deux dates est une tâche de programmation fréquente. Cet article démontre une représentation temporelle relative précise en C #.

Calcul des différences de temps

Pour déterminer la différence entre deux valeurs DateTime, soustraire la date antérieure de la date ultérieure, ce qui entraîne un objet TimeSpan. Cet objet représente la durée en jours, heures, minutes et secondes.

Formatage du temps relatif

Plusieurs méthodes existent pour formater la différence de temps calculée comme temps relatif:

  1. Approche basée sur une constante: Définir les constantes pour chaque unité de temps (secondes, minutes, heures, jours, mois, etc.) et utilisez des instructions conditionnelles pour construire la chaîne de temps relative.
  2. Méthode du constructeur de chaînes: Utilisez un StringBuilder pour créer dynamiquement la chaîne de temps relative basée sur les valeurs TimeSpan.

Exemple d'implémentation (approche constante)

Voici un exemple utilisant l'approche constante:

<code class="language-csharp">const int SECOND = 1;
const int MINUTE = 60 * SECOND;
const int HOUR = 60 * MINUTE;
const int DAY = 24 * HOUR;
const int MONTH = 30 * DAY;

TimeSpan ts = DateTime.UtcNow - yourDate; // Assuming yourDate is the earlier date
double delta = Math.Abs(ts.TotalSeconds);

string relativeTime;
if (delta < MINUTE)
{
    relativeTime = $"{Math.Round(delta)} seconds ago";
}
else if (delta < HOUR)
{
    relativeTime = $"{Math.Round(delta / MINUTE)} minutes ago";
}
else if (delta < DAY)
{
    relativeTime = $"{Math.Round(delta / HOUR)} hours ago";
}
else if (delta < MONTH)
{
    relativeTime = $"{Math.Round(delta / DAY)} days ago";
}
else
{
    relativeTime = $"{Math.Round(delta / MONTH)} months ago";
}

Console.WriteLine(relativeTime);</code>

Cette méthode offre un code clair et maintenable, facilement extensible pour inclure des unités de temps supplémentaires ou ajuster le format de sortie.

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:
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