如何在datagridview中显示时间间隔?

时间:2010-08-06 13:04:55

标签: c# datetime

我正在开发一个应用程序,其中有两个数据库字段。一个是Date,另一个是插入数据类型为VARCHAR(10)的记录的时间。

我需要用这些字段填充DataGridView。

问题在于我必须将时间填充为这些日期时间之间的经过时间。

如果记录是在2010/08/20 18:00:00添加的。

  • 如果在2分钟后显示数据,则会显示2 Mins Ago
  • 如果在2小时后2 Hrs Ago
  • 如果是2天2 Days Ago

3 个答案:

答案 0 :(得分:1)

首先,您必须通过从TimeSpan中减去DateTime.Now来计算TimeSpan。使用此TimeSpan以及this answer(或此问题中的任何其他内容),编写一个获取此string的函数并返回所需的{{1}}。

答案 1 :(得分:0)

将该列的选择作为时间跨度:now - then。然后转换为您需要的任何时间单位。

答案 2 :(得分:0)

考虑在System.DateTime上实施扩展方法。也许将您的扩展方法称为ToRelativeTime()。听起来您的第二个日期是varchar,因此您必须做一些工作才能将其转换为datetime

这是一个example DateTime method that will subtract a given DateTime from Now。您要寻找的修改类似于:

private static string ToRelativeDateTime(DateTime someDate, 
                                         DateTime rowInsertedAt)

在DataGridView中,您可以将该列的值设置为扩展方法的返回值或输出值。

您不一定要在DateTime上创建扩展方法,但可能是自己的静态成员方法。