计算从日期vb.net开始的经过时间?

时间:2016-09-12 08:58:09

标签: c# asp.net vb.net datetime elapsedtime

我需要从日期算起经过的时间,例如:

我有这条线

 Mon, 12 Sep 2016 10:20:00 +0100

如果现在的日期时间是:

12/09/2016 10:40:02

我需要得到最终结果:

20 mins ago

同一问题的另一个例子可以更好地解释它: 如果我有这个日期:

Sun, 11 Sep 2016 09:18:13 +0100

最终结果应为:

1 day ago

但是如果时间没有变成24小时,那么它会把那个时间以来的小时数放在一起,例如:

Sun, 11 Sep 2016 11:18:13 +0100

结果将是:

23 hours ago

如果过去的日期是一个月或几年,则相同, 来自示例: 这个日期:

Sun, 11 Ago 2016 11:18:13 +0100

结果:

1 month ago

Sun, 11 Ago 2015 11:18:13 +0100

结果:

1 year ago

我怎么能得到这个?谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

如果两者的类型相同,您可以直接从结束日期时间中减去开始日期时间。

var difference = endDateTime - startDateTime;

一旦你得到了改变,那么只需格式化输出字符串。

参考this

答案 1 :(得分:3)

您可以使用Humanizer

// For DateTime
DateTime.UtcNow.AddHours(-30).Humanize() // returns "yesterday"
DateTime.UtcNow.AddHours(-2).Humanize()  // returns "2 hours ago"

// For TimeSpan
TimeSpan.FromDays(1).Humanize(precision:2) // "1 day"
TimeSpan.FromDays(16).Humanize(2) // "2 weeks, 2 days"

您可以在github

找到更多样本

答案 2 :(得分:1)

您可以使用DateDiff功能。