asp.net - 显示友好日期、数字

标签 asp.net asp.net-mvc custom-controls

<分区>

Possible Duplicate:
How do I calculate relative time?

我正在寻找 asp.net 的自定义控件,它有助于显示用户友好的日期,例如代替文章日期:

(2010 年 4 月 2 日)

显示

(2 个月大)

我无法在谷歌上找到它,请任何人提供相同的链接、自定义控件、文章。

谢谢。

最佳答案

试试这个(这是一个日期时间扩展)。所以用法是:

var date = new DateTime.Now;

string formattedDate = date.ToReadableTimespan();


public static string ToReadableTimespan(this DateTime d)
            {
                // 1.
                // Get time span elapsed since the date.
                TimeSpan s = DateTime.Now.Subtract(d);

                // 2.
                // Get total number of days elapsed.
                int dayDiff = (int)s.TotalDays;

                // 3.
                // Get total number of seconds elapsed.
                int secDiff = (int)s.TotalSeconds;

                // 4.
                // Don't allow out of range values.
                if (dayDiff < 0 || dayDiff >= 31)
                {
                    return null;
                }

                // 5.
                // Handle same-day times.
                if (dayDiff == 0)
                {
                    // A.
                    // Less than one minute ago.
                    if (secDiff < 60)
                    {
                        return "just now";
                    }
                    // B.
                    // Less than 2 minutes ago.
                    if (secDiff < 120)
                    {
                        return "1 minute ago";
                    }
                    // C.
                    // Less than one hour ago.
                    if (secDiff < 3600)
                    {
                        return string.Format("{0} minutes ago",
                            Math.Floor((double)secDiff / 60));
                    }
                    // D.
                    // Less than 2 hours ago.
                    if (secDiff < 7200)
                    {
                        return "1 hour ago";
                    }
                    // E.
                    // Less than one day ago.
                    if (secDiff < 86400)
                    {
                        return string.Format("{0} hours ago",
                            Math.Floor((double)secDiff / 3600));
                    }
                }
                // 6.
                // Handle previous days.
                if (dayDiff == 1)
                {
                    return "yesterday";
                }
                if (dayDiff < 7)
                {
                    return string.Format("{0} days ago",
                        dayDiff);
                }
                if (dayDiff < 31)
                {
                    return string.Format("{0} weeks ago",
                        Math.Ceiling((double)dayDiff / 7));
                }
                return null;
            }

关于asp.net - 显示友好日期、数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044847/

相关文章:

c# - 如何获取 url 响应(内容 : xml data) from solr search engine in asp.net

c# - 完成操作后如何销毁类的实例

c# - 服务器和客户端验证差异增加了额外的跨度

c# - 在 Xamarin 中创建自定义控件

html - 全屏模式下的自定义视频控件

c# - DataTable 不包含 AsEnumerable 的定义

javascript - 从 ASP.NET 页面接收内容?

c# - 检查进程是否返回错误 | C#

sql-server - 未插入 SQL Server 数据库中的值

WPF 自定义控件 : DependencyProperty TwoWay Binding