Сортировка по времени C#?

bezvozni

Client
Регистрация
31.03.2013
Сообщения
306
Благодарностей
29
Баллы
28
В проекте собран список (пример):

25.05.2015 09:45:08{-String.Tab-}данные
27.05.2015 04:03:01{-String.Tab-}данные
26.05.2015 23:51:21{-String.Tab-}данные
27.05.2015 04:27:24{-String.Tab-}данные
26.05.2015 23:41:17{-String.Tab-}данные

Необходимо рассортировать по времени. От меньшего(раннего) к бОльшему(позднему).

Это возможно?

Если нет, то можно сделать следующее.
Есть c# код, который устанавливает разницу между текущей датой и заданной:
Код:
DateTime now = DateTime.Today;
int year1 = Convert.ToInt32(project.Variables["year"].Value);
int month1 = Convert.ToInt32(project.Variables["month"].Value);
int day1 = Convert.ToInt32(project.Variables["day"].Value);
DateTime check = new DateTime(year1, month1, day1);
TimeSpan interval = check - now;
return interval;
Но он выдаёт количество дней.
Вот если он будет выдавать кол-во минут, то это также решит вопрос.
То есть на входе текущее время и заданное (пример:26.05.2015 23:41:06), а выходе разница между ними в минутах.
 
Последнее редактирование:

iDnx

Client
Регистрация
06.06.2013
Сообщения
132
Благодарностей
105
Баллы
43
Вот если он будет выдавать кол-во минут, то это также решит вопрос.
То есть на входе текущее время и заданное (пример:26.05.2015 23:41:06), а выходе разница между ними в минутах.
Код:
DateTime now = DateTime.Today;
int year1 = Convert.ToInt32(project.Variables["year"].Value);
int month1 = Convert.ToInt32(project.Variables["month"].Value);
int day1 = Convert.ToInt32(project.Variables["day"].Value);
DateTime check = new DateTime(year1, month1, day1);
TimeSpan interval = now - check;
return interval.TotalMinutes;
Предполагаю лучше давать на вход 26.05.2015 23:41:06 полностью в переменную checkDateTime и получить точное количество минут.
Код:
DateTime now = DateTime.Now;
DateTime check = DateTime.Parse(project.Variables["checkDateTime"].Value);
TimeSpan interval = now - check;
return interval.TotalMinutes;
Если нужно отсчитывать от текущего времени, то DateTime now = DateTime.Now
или же от начала дня DateTime now = DateTime.Today
 
Последнее редактирование:
  • Спасибо
Реакции: bezvozni

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
var listname = "Список 1"; //поменять на свое
var orderedlist = project.Lists[listname].OrderBy(i=>DateTime.Parse(i.Split('\t')[0])).ToList();
project.Lists[listname].Clear();
orderedlist.ForEach(e=>project.Lists[listname].Add(e));
 
  • Спасибо
Реакции: bezvozni

bezvozni

Client
Регистрация
31.03.2013
Сообщения
306
Благодарностей
29
Баллы
28
Оба кода пригодились. Отлично.

Правда сейчас понял, что можно было преобразовывать
26.05.2015 23:41:17 в 2015.05.26 23:41:17
и сортировать по возрастанию зеновским экшеном)))

Но с C# меньше действий. Спасибо.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)