首頁 >後端開發 >C++ >如何在C#中的DateTime顯示相對時間(例如,' 2小時前”)?

如何在C#中的DateTime顯示相對時間(例如,' 2小時前”)?

Linda Hamilton
Linda Hamilton原創
2025-02-01 23:11:10989瀏覽

How to Display Relative Time (e.g.,

>在C#>

中顯示相對時間

>本文演示瞭如何從c#中給定DateTime的值顯示相對時間(例如,“ 2小時前”,“一個月前”)。

解決方案涉及以下步驟:

  1. 計算時間差:找到當前時間和輸入DateTime之間的差異
  2. 轉換差異:>根據幅度,將差異轉換為秒,幾分鐘,小時,天或數月。
  3. 格式化輸出:
  4. 基於計算的差異創建一個用戶友好的相對時間字符串。 > 這是一個C#代碼示例:

此功能,

,將A
<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>
作為輸入,並返回表示相對時間的字符串。 它處理幾秒鐘,幾分鐘,小時,天和幾個月。 您可以輕鬆地將其擴展到包括年或其他時間單元。

的使用提供了更乾淨的輸出。 切記將GetRelativeTime替換為您的實際DateTime變量。 此方法使用以保持一致性;如果需要,您可以將其調整為Math.Round。 對於時間計算,通常首選使用UTC來避免與時區有關的模棱兩可。

以上是如何在C#中的DateTime顯示相對時間(例如,' 2小時前”)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn