По основному профилю работы я пишу на FoxPro, Delphi и остальное изучать просто лень, Hiasm использую когда пользователю недостаточно некоторых функций(как то поддержка длинных имен например). Собственно возникла проблема работы с сабжем: нету определения дня недели, дня года, переходы на количество дней(вперед-назад). Я написал свои но выглядят они так
code_1053.txt
Вот если бы кто их написал или сказал можно ли это запихнуть в компонент(имею ввиду .sha> .pas)?
Этот топик читают: Гость
Ответов: 105
Рейтинг: 2
|
|||
карма: 0 |
| ||
файлы: 1 | code_1053.txt [7.4KB] [592] |
Ответов: 8926
Рейтинг: 823
|
|||
GRIMAN, я выкладывал на форуме, но не нашёл, выкладываю ещё раз (надеюсь Galkov простит) элемент Convertor с преобразованием дата-число и число-дата.
|
|||
карма: 19 |
| ||
файлы: 1 | HiDate.rar [3.3KB] [362] |
Ответов: 9906
Рейтинг: 351
|
|||
Леонид, а так не проще будет
code_1054.txt |
|||
карма: 9 |
| ||
файлы: 1 | code_1054.txt [1.1KB] [504] |
Ответов: 8926
Рейтинг: 823
|
|||
Galkov, конечно, проще, тем более, что в KOL-е счёт ведётся от рождества Христова, а не от 31/12/1899 г., но мне простительно, справку по KOL только начал изучать и до дат ещё не доизучал
|
|||
карма: 19 |
|
Ответов: 105
Рейтинг: 2
|
|||
Спасибо, очень помогло! Только дня недели в последнем примере нет
|
|||
карма: 0 |
|
Ответов: 8926
Рейтинг: 823
|
|||
GRIMAN, с учётом замечаний Galkov-а переделал (предварительно прочитав раздел "Работа с датой и временем в KOL") Convertor - он стал меньше по размеру и считает от Рождества Христова
[size=-2]------ Добавлено в 17:55 вот он: |
|||
карма: 19 |
| ||
файлы: 1 | HiDate1.rar [2.6KB] [405] |
Ответов: 9906
Рейтинг: 351
|
|||
Леонид, фигня все это...
Надо отдельный элемент делать. И использовать KOL-овскую формат строку.
Вот только она не соответствует строке из элемента Time Но функциональней Может, если добавить такой конвертор отдельным элементом, вообще из него выкинуть св-во Format ??? И оставить только нижнюю точку типа Real И так же поступить в элементе FileAttributes... Что вот на это Dilma скажет |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Да, согласен. Имеет смысл привести время во всех элементах к одному виду и сделать отдельный компонент для всевозможных манипуляций с ним(в том числе и преобразование в Human Readable String). Представление же времени по-моему лучше всего сделать таким же, как в unix - целое число, представляющее из себя число секунд, прошедших от 1970 года. Такое представление без дополнительных конвертаций сделает элементы совместимыми с временными метками различных баз данных.
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Мда... вовсе не Courier однако...
[size=-2]------ Добавлено в 20:48 Dilma, в KOL уже есть все - не надо морочиться НО Real - число в днях от Р.Х. Народ говорит, что где-то еще этот формат любят... [size=-2]------ Добавлено в 21:01 Т.е, отсутствие заморочек при использовании Human Readable String - это использование KOL-овских преобразований. Но они используют Real (который и милисекунды не исключает, кстати). Может просто в DataTimeConvertor-е еще два метода добавить (Real <-> Unix)... |
|||
карма: 9 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Galkov, если делать отдельный элемент, то формат даты на входе должен быть любым, с любыми разделителями и определяться автоматически- а это можно сделать только работая со строкой без применения функций даты и времени, а уже после приведения входа к KOL-овскому формату использовать и KOL-овские функции, а формат даты на выходе должен определять пользователь, как это сделано в элементе Time.
А Dilma, думается, ничего не скажет, а подождёт [size=-2]------ Добавлено в 21:11 Сказал, однако |
|||
карма: 19 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Леонид писал(а): с любыми разделителями и определяться автоматически- а это можно сделать Чего |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Galkov писал(а): Народ говорит, что где-то еще этот формат любят...может где-то и любят, а я же говорю про вполне конкретные вещи и задачи. Кроме того хранение времени в виде целого числа так же без дополнительных заморочек позволяет скажем быстро и просто получать разницу во времени между двумя метками простым вычитанием: delta = time2 - time2 хотим в минутах делим на 60, в часах на 60*60 для получения следующей отметки времени, отстоящей скажем на h часов от текущей имеем: next_time = cur_time + h*60*60 |
|||
карма: 27 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Galkov, (1/12/66 12 36 00) (12,2006'1.37.05) (01"01"07) - пользователь может навводить и не такое
|
|||
карма: 19 |
|
Ответов: 3655
Рейтинг: 69
|
|||
Леонид писал(а): (1/12/66 12 36 00) (12,2006'1.37.05) (01"01"07) - пользователь может навводить и не такое Короче всё что не цифра - разделитель. |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
обратный парсинг без указания пользователем маски просто не возможен. Поэтому не ддумаю, что имеет смысл тут говорить о каких-то разделителях.
|
|||
карма: 27 |
|