Calculating Timespan using asp.net
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How do I calculate relative time?
我想使用ASP.NET C计算文件上载时的时间跨度。例如,如果我两周前上传了一个文件,我的文本将显示"两周前上传",或者如果我4个月前上传了一个文件,我的文本将显示"4个月前上传"。
有人能给我一些我该怎么做的建议吗?
谢谢
我有这个问题,创建了下面的
对于用法,您只需在TimeSpan实例上使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | public static class TimeSpanExtensions { public static string ToFriendlyString(this TimeSpan t) { return ToFriendlyString(t, Thread.CurrentThread.CurrentCulture); } public static string ToFriendlyString(this TimeSpan t, CultureInfo cultureInfo) { if(cultureInfo.IetfLanguageTag.StartsWith("en")) { return ToFriendlyString_English(t); } else { throw new NotSupportedException("This culture is currently not supported."); } } private static string ToFriendlyString_English(TimeSpan t) { int years = t.Days/365; int months = t.Days/30; int weeks = t.Days/7; if (years > 0) { return string.Format("{0} year{1}", years, years > 1 ?"s" :""); } if (months > 0) { return string.Format("{0} month{1}", months, months > 1 ?"s" :""); } if (weeks > 0) { return string.Format("{0} week{1}", weeks, weeks > 1 ?"s" :""); } if (t.Days > 0) { return string.Format("{0} day{1}", t.Days, t.Days > 1 ?"s" :""); } if (t.Hours > 0) { return string.Format("{0} hour{1}", t.Hours, t.Hours > 1 ?"s" :""); } if (t.Minutes > 0) { return string.Format("{0} minute{1}", t.Minutes, t.Minutes > 1 ?"s" :""); } if (t.Seconds > 0) { return string.Format("{0} second{1}", t.Seconds, t.Seconds > 1 ?"s" :""); } return"now"; } } |
您可以使用