首页 >后端开发 >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