Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
MechanicPaul
2 / 2 / 4
Регистрация: 25.05.2013
Сообщений: 157
1

Сортировка дат по 4 ключам

30.03.2014, 05:42. Просмотров 288. Ответов 6
Метки нет (Все метки)

Есть даты такого формата:
Fri, 28 Mar 2014 16:42:58 PDT
Fri, 28 Mar 2014 15:16:47 PDT
Sat, 29 Mar 2014 13:33:05 PDT
Sat, 29 Mar 2014 13:23:32 PDT
Sat, 29 Mar 2014 12:28:34 PDT
Sat, 29 Mar 2014 13:30:56 PDT
Sat, 29 Mar 2014 13:56:19 PDT

Нужно сортировать по 4 параметрам: год, месяц, день, время.

Подскажите какой-нибудь хороший способ решить задачу не используя миллионы ифов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 05:42
Ответы с готовыми решениями:

Удаление по ключам (хеширование)
Стоит задача Создать хеш-таблицу со случайными ключами и удалить из нее...

Сортировка по трем ключам
Задание: Составить для каждого отдела график празднования дней рождений....

Сортировка массива по двум ключам
Есть задание: Написать программу, которая сортирует элементы массива по двум...

Сортировка дат
Есть некий код он сравнивает две даты и понимает какая ихз них больше а какая...

Сортировка дат
Дан перечень дат (формат «21 сентября 1982 г.»). Рассортировать эти даты в...

6
IrineK
Заблокирован
30.03.2014, 05:49 2
Сгенерировать строки вида
20140328164258
20140328151647
20140329133305
и спокойно их сравнить с помощью, например, strcmp.
Обязательно выделять: 4 позиции на год, 2 позиции на месяц (0 впереди, если необходимо), 2 позиции на день, час, минуты, секунды (все это также с 0 впереди, если необходимо).

Чем строка больше, чем она "свежее".
Самые маленькие строки соответствуют наиболее давним событиям.
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.03.2014, 10:52 3
Цитата Сообщение от IrineK Посмотреть сообщение
Сгенерировать строки вида
Не обязательно использовать именно строки. Суть решения подобных задач сводится к получению некоторой обобщенной сущности, для которой реализована операция сравнения. В классическом случае с датами наиболее очевидным вариантом является представление даты в виде кол-ва секунд от "начала времен". См. time_t и подобные типы.
0
IrineK
Заблокирован
30.03.2014, 13:32 4
Цитата Сообщение от Tulosba Посмотреть сообщение
См. time_t
mktime ограничен 1970 годом.
Т.е. в рамках данной задачи - пойдет. В рамках других - может быть и нет.
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.03.2014, 16:59 5
Цитата Сообщение от IrineK Посмотреть сообщение
mktime ограничен 1970 годом.
Т.е. в рамках данной задачи - пойдет. В рамках других - может быть и нет.
В рамках других может и 4х позиций для года не хватить. При этом стоит понимать, что сравнение целых чисел будет выполняться быстрее сравнения строк. А вообще, мы с Вами уже пересекались на теме дат
Количество прожитых дней
0
IrineK
31.03.2014, 00:45
  #6

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
мы с Вами уже пересекались
Форум тесен )

0
Памирыч
31.03.2014, 06:51     Сортировка дат по 4 ключам
  #7
 Комментарий модератора 
Закрыто. Причина: кросспостинг
0
31.03.2014, 06:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 06:51
Привет! Вот еще темы с ответами:

Сортировка дат
Например есть список: "26.08.2010":"14.09.2010":"01.10.2010" Понятно что...

Сортировка дат
Задание ввести пят дат через MaskEdit, после чего отсортировать в порядке...

Сортировка массива дат
Доброго всем времени суток! Задача: В массиве имеются несколько элементов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru