【发布时间】:2012-04-09 00:32:57
【问题描述】:
我需要帮助才能显示这样的内容。如果您认识,这是我们 Stack Overflow 帐户的会员期限。
member for 2 years, 3 months
我需要在相同的地方稍作修改。我的条件和显示格式如下:
Conditions Display Format
1. Below 7 days -> Days (5 days)
2. 7 -30 days -> Weeks, days ( 2 Weeks, 3 Days) in case of 17 days.
3. 30 - 365 -> Months, Weeks, Days (4Months, 2Weeks, 2Days) in case of 136 days
3. 365 or grter -> Years, Months only (2years, 3 Months)
What I did:
我正在使用时间跨度来获取日期差异。但我对我的输出不满意。我有一个会员,其注册在 2-3 天后将 2 个月大,但仍然显示 1 个月前。这是我的代码:
TimeSpan ts = DateTime.Now - Convert.ToDateTime(company.RegistrationDate);
if (ts.Days > 365)
membersince.InnerText = string.Format("{0} years", (ts.Days / 365));
else if (ts.Days < 30)
membersince.InnerText = string.Format("{0} days", ts.Days);
else if(ts.Days > 30)
membersince.InnerText = string.Format("{0} months", (ts.Days/30));
【问题讨论】:
-
你用调试器完成了吗?
-
在您的问题中,给出了“我有一个会员,其注册将在 2-3 天后 2 个月大,但仍然显示 1 个月前。”现在还不到2个月,1个月的输出不应该正确吗?
-
您是否打算进行一些四舍五入。对手示例:如果天数 > 55,则将月份视为 2 而不是 1?
标签: c# asp.net .net datetime timespan