Maison > développement back-end > C++ > Comment afficher le temps relatif (par exemple, 'il y a 2 heures') à partir d'une datetime en C #?

Comment afficher le temps relatif (par exemple, 'il y a 2 heures') à partir d'une datetime en C #?

Linda Hamilton
Libérer: 2025-02-01 23:11:10
original
933 Les gens l'ont consulté

How to Display Relative Time (e.g.,

Affichage du temps relatif en C #

Cet article montre comment afficher le temps relatif (par exemple, "il y a 2 heures", "il y a un mois") à partir d'une valeur donnée DateTime en C #.

La solution implique ces étapes:

  1. Calculez la différence de temps: Trouvez la différence entre l'heure actuelle et l'entrée DateTime.
  2. Convertir la différence: Transformez la différence en secondes, minutes, heures, jours ou mois, selon l'ampleur.
  3. Format la sortie: Créez une chaîne de temps relative relative conviviale basée sur la différence calculée.

Voici un exemple de code C #:

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

public static string GetRelativeTime(DateTime yourDate)
{
    TimeSpan ts = DateTime.UtcNow - yourDate;
    double delta = Math.Abs(ts.TotalSeconds);

    if (delta < 60)
    {
        return $"{Math.Round(delta)} seconds ago";
    }
    else if (delta < 3600)
    {
        return $"{Math.Round(delta / MINUTE)} minutes ago";
    }
    else if (delta < 86400)
    {
        return $"{Math.Round(delta / HOUR)} hours ago";
    }
    else if (delta < 2592000) // 30 days
    {
        return $"{Math.Round(delta / DAY)} days ago";
    }
    else
    {
        return $"{Math.Round(delta / MONTH)} months ago";
    }
}</code>
Copier après la connexion

Cette fonction, GetRelativeTime, prend un DateTime en entrée et renvoie une chaîne représentant le temps relatif. Il gère les secondes, les minutes, les heures, les jours et les mois. Vous pouvez facilement l'étendre pour inclure des années ou d'autres unités de temps. L'utilisation de Math.Round fournit une sortie plus propre. N'oubliez pas de remplacer yourDate par votre variable réelle DateTime. Cette méthode utilise DateTime.UtcNow pour la cohérence; Vous pouvez l'ajuster à DateTime.Now si nécessaire. L'utilisation de l'UTC est généralement préférée pour les calculs de temps pour éviter l'ambiguïté liée aux fuseaux horaires.

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!

source:php.cn
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