Как показать временные интервалы в datagridview? - PullRequest
0 голосов
/ 06 августа 2010

Я работаю над приложением, в котором у меня есть два поля базы данных. Одним из них является Date, а другим - время вставки записи с типом данных VARCHAR(10).

Мне нужно заполнить DataGridView этими полями.

Проблема в том, что я должен заполнить время как истекшее время между этими датами.

Если запись добавлена ​​в 2010/08/20 18:00:00.

  • если показывать данные через 2 минуты, тогда будет отображаться 2 Mins Ago
  • если через 2 часа то 2 Hrs Ago
  • если 2 дня то 2 Days Ago.

Ответы [ 3 ]

1 голос
/ 06 августа 2010

Сначала вы должны вычислить TimeSpan, просто вычтя его из DateTime.Now.Возьмите этот TimeSpan, а также этот ответ (или любой другой в этом вопросе), чтобы написать функцию, которая принимает это TimeSpan и возвращает необходимое string.

0 голосов
/ 06 августа 2010

Рассмотрите возможность реализации метода расширения на System.DateTime.Возможно, вызовите ваш метод расширения что-то вроде ToRelativeTime().Похоже, ваша вторая дата - varchar, поэтому вам придется проделать определенную работу, чтобы преобразовать ее в datetime.

Вот пример примера метода DateTime, который будет вычитать заданный DateTime изТеперь .Модификация, которую вы ищите, выглядит примерно так:

private static string ToRelativeDateTime(DateTime someDate, 
                                         DateTime rowInsertedAt)

В вашем DataGridView вы можете установить значение этого столбца в качестве возврата или вывода метода расширения.

Вы не можетене обязательно создавать метод расширения для DateTime, но, возможно, метод статического члена сам по себе.

0 голосов
/ 06 августа 2010

Выберите для этого столбца интервал времени: now - then.Затем конвертируйте в любую нужную вам единицу времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...