How I can convert Date to String formate.?
Possible Duplicate:
How do I calculate relative time?
我想将日期值转换为字符串格式,就像YouTube视频上载时间或日期一样,例如2年前、1个月前或8小时前,这样假设我有简单的日期作为输出。
谢谢您。。!!
1 2 3 4 5 | DateTime now = DateTime.Now; DateTime older = //orignal date time; TimeSpan difference = now.Subtract(older); |
一旦你把你的时间跨度计算年,月,日和时间跨度为基础的决策属性类等
你需要减日期从目前的日期。这将给你一个代表值之间的差异是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | TimeSpan d = DateTime.Now - someDate; if (d.TotalSeconds < 59) { return d.TotalSeconds +" second(s) ago"; } else if (d.TotalMinutes < 59) { return d.TotalMinutes +" minute(s) ago"; } else if (d.TotalHours < 23) { return d.TotalHours +" hour(s) ago"; } // days, weeks, months and years. It's up to you. |
我写这个功能的一些年前的样子,那就是你的肛门。
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 | public static string GetTimeElpased(int secondsElpased, int minutesElpased, int hoursElpased, int daysElpased, int monthsElpased, int yearsElpased) { if (secondsElpased < 30) return"few seconds ago"; if (minutesElpased < 1) return secondsElpased +" seconds ago"; if (minutesElpased < 5) return"few minutes ago"; if (hoursElpased < 1) return minutesElpased +" minutes ago"; if (hoursElpased < 5) return"few hours ago"; if (daysElpased < 1) return hoursElpased +" hours ago"; if (daysElpased == 1) return"yesterday"; if (monthsElpased < 1) return daysElpased +" days ago"; if (monthsElpased == 1) return"month ago"; if (yearsElpased < 1) return monthsElpased +" months ago"; string halfYear = (monthsElpased >= 6) ?" and half" :""; if (yearsElpased == 1) return"year" + halfYear +" ago"; return yearsElpased +" years ago"; } |
更多详细的功能完整的/湖的其他问题。(c #相对时间计算)
我想你要找什么样
你可以使用像这样的东西。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | static void Main(string[] args) { Console.WriteLine(GetDifferenceDate(new DateTime(2011, 11, 25, 10, 30, 2), new DateTime(2012, 1, 2, 6, 3, 5))); } static string GetDifferenceDate(DateTime date1, DateTime date2) { if (DateTime.Compare(date1, date2) >= 0) { TimeSpan ts = date1.Subtract(date2); return string.Format("{0} days, {1} hours, {2} minutes, {3} seconds", ts.Days, ts.Hours, ts.Minutes, ts.Seconds); } else return"Not valid"; } |
有一个类似的问题:在你的计算器,必看
在C #相对时间计算
更多细节:湖
www.daniweb.com http:/ / / / /线程的软件开发/ 127213 CSharp
希望这帮助。
我觉得我的家庭作业时,我在这里是一个例子:下面一个DateTime对象扩展方法的任务,比较它的DateTime。现在返回适当的描述如何长前是约会。
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 | public static class Ext { public static string HowMuchAgo(this DateTime dt) { var difference = (DateTime.Now - dt); if (difference < TimeSpan.FromSeconds(.5)) { return"Just now!"; } else if (difference < TimeSpan.FromMinutes(1)) { return difference.Seconds +" seconds ago."; } else if (difference < TimeSpan.FromHours(1)) { return difference.Minutes +" minutes and" + difference.Seconds +" seconds ago."; } else if (difference < TimeSpan.FromDays(1)) { return difference.Hours +" hours and" + difference.Minutes +" minutes and" + difference.Seconds +" seconds ago."; } else if (difference > TimeSpan.FromDays(1) && difference < TimeSpan.FromDays(2)) { return"Yesterday at" + dt.ToShortTimeString(); } else { return"On" + dt.ToString(); } } } |
如果你调用get()datetime.now.howmuchago你"现在!"当然你可以修改它,添加更多的if语句中得到更多的粒度或修改说明什么是叙述性的描述。
看看这个:自定义日期和时间格式字符串
在启动http://。/en-US /图书馆/ system.datetime.aspx
http://social.msdn.microsoft.com /搜索/美国?查询= timespan &;x = 0和y = 0 &;
我相信你是试图做的是确定使用之间的差异timespan现在日期被张贴的东西。你不得不做一些与结果,但你可以算多少小时/分钟/天/年,有不同的。