Не вдаваясь в особенности реализации типов и библиотечных функций в конкретных языках, скажу, что оба варианта в первом посте вполне рабочие: и перевод дат в абсолютные минуты (да-да, от Рождества Христова), что позволяет, помимо всего прочего, удобно получать временнЫе интервалы между датами простым вычитанием с последующим переводом обратно в часы/дни если надо, и запись даты в формате ГГГГММДДЧЧММ - хоть в число хоть в строку, с последующим простым сравнением или вызовом стандартной функции сортировки по одному полю.
ЗЫ в 1С7.7 есть тип "Дата", но без часов и минут, сам применял подобные варианты неоднократно для разных случаев. Да и даже когда просто в одном каталоге надо хранить несколько файлов архивов с удобной возможностью выбора по хронологии, задаю имена так
Код:
arch_20130621.zip
arch_20130622.zip
arch_20130627.zip
.....
ЗЗЫ а вообще, для сортировки массива элементов любого типа (самописной функцией, а не библиотечной), необходима и является ключевой функция сравнения двух значений этих типов на больше/меньше/равно, которая в данном случае делается тривиально.
ЗЗЗЫ и еще, нередко переменные типа флаг (0/1) на 32-разрядных машинах задают типом int, чтобы компилятор помещал ее в отдельный регистр для быстрого последующего доступа/сравнения, но в данном случае, создавать массив дат со столькими разрядами для хранения чисел от 1 до 12/24/31/60, да еще и с возможностью знака в типе, мне кажется излишне расточительным. Хотя, сейчас память дешевая, ОЗУ навалом, кто будет заботиться о таких мелочах....