Вверх ↑
Этот топик читают: Гость
Ответов: 105
Рейтинг: 2
#1: 2007-03-12 10:08:15 ЛС | профиль | цитата
По основному профилю работы я пишу на FoxPro, Delphi и остальное изучать просто лень, Hiasm использую когда пользователю недостаточно некоторых функций(как то поддержка длинных имен например). Собственно возникла проблема работы с сабжем: нету определения дня недели, дня года, переходы на количество дней(вперед-назад). Я написал свои но выглядят они так
code_1053.txt
Вот если бы кто их написал или сказал можно ли это запихнуть в компонент(имею ввиду .sha> .pas)?
карма: 0

0
файлы: 1code_1053.txt [7.4KB] [592]
Ответов: 8926
Рейтинг: 823
#2: 2007-03-12 13:04:36 ЛС | профиль | цитата
GRIMAN, я выкладывал на форуме, но не нашёл, выкладываю ещё раз (надеюсь Galkov простит) элемент Convertor с преобразованием дата-число и число-дата.
карма: 19

0
файлы: 1HiDate.rar [3.3KB] [362]
Ответов: 9906
Рейтинг: 351
#3: 2007-03-12 14:35:21 ЛС | профиль | цитата
Леонид, а так не проще будет
code_1054.txt
карма: 9

0
файлы: 1code_1054.txt [1.1KB] [504]
Ответов: 8926
Рейтинг: 823
#4: 2007-03-12 15:05:51 ЛС | профиль | цитата
Galkov, конечно, проще, тем более, что в KOL-е счёт ведётся от рождества Христова, а не от 31/12/1899 г., но мне простительно, справку по KOL только начал изучать и до дат ещё не доизучал
карма: 19

0
Ответов: 105
Рейтинг: 2
#5: 2007-03-12 16:27:53 ЛС | профиль | цитата
Спасибо, очень помогло! Только дня недели в последнем примере нет
карма: 0

0
Ответов: 8926
Рейтинг: 823
#6: 2007-03-12 17:55:24 ЛС | профиль | цитата
GRIMAN, с учётом замечаний Galkov-а переделал (предварительно прочитав раздел "Работа с датой и временем в KOL") Convertor - он стал меньше по размеру и считает от Рождества Христова

[size=-2]------ Добавлено в 17:55
вот он:
карма: 19

0
файлы: 1HiDate1.rar [2.6KB] [405]
Ответов: 9906
Рейтинг: 351
#7: 2007-03-12 20:36:05 ЛС | профиль | цитата
Леонид, фигня все это...
Надо отдельный элемент делать. И использовать KOL-овскую формат строку.
        DATE PICTURES
   d    Day of the month as digits without leading zeros for single digit days.
dd Day of the month as digits with leading zeros for single digit days
ddd Day of the week as a 3-letter abbreviation as specified by a
LOCALE_SABBREVDAYNAME value.
dddd Day of the week as specified by a LOCALE_SDAYNAME value.
M Month as digits without leading zeros for single digit months.
MM Month as digits with leading zeros for single digit months
MMM Month as a three letter abbreviation as specified by a LOCALE_SABBREVMONTHNAME value.
MMMM Month as specified by a LOCALE_SMONTHNAME value.
y Year represented only be the last digit.
yy Year represented only be the last two digits.
yyyy Year represented by the full 4 digits.
gg Period/era string as specified by the CAL_SERASTRING value. The gg
format picture in a date string is ignored if there is no associated era
string. In Enlish locales, usual values are BC or AD.

TIME PICTURES
h Hours without leading zeros for single-digit hours (12-hour clock).
hh Hours with leading zeros for single-digit hours (12-hour clock).
H Hours without leading zeros for single-digit hours (24-hour clock).
HH Hours with leading zeros for single-digit hours (24-hour clock).
m Minutes without leading zeros for single-digit minutes.
mm Minutes with leading zeros for single-digit minutes.
s Seconds without leading zeros for single-digit seconds.
ss Seconds with leading zeros for single-digit seconds.
t One character–time marker string (usually P or A, in English locales).
tt Multicharacter–time marker string (usually PM or AM, in English locales).

Вот только она не соответствует строке из элемента Time
Но функциональней
Может, если добавить такой конвертор отдельным элементом, вообще из него выкинуть св-во Format ???
И оставить только нижнюю точку типа Real
И так же поступить в элементе FileAttributes...

Что вот на это Dilma скажет
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2007-03-12 20:45:00 ЛС | профиль | цитата
Да, согласен. Имеет смысл привести время во всех элементах к одному виду и сделать отдельный компонент для всевозможных манипуляций с ним(в том числе и преобразование в Human Readable String). Представление же времени по-моему лучше всего сделать таким же, как в unix - целое число, представляющее из себя число секунд, прошедших от 1970 года. Такое представление без дополнительных конвертаций сделает элементы совместимыми с временными метками различных баз данных.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#9: 2007-03-12 21:01:10 ЛС | профиль | цитата
Мда... вовсе не Courier однако...

[size=-2]------ Добавлено в 20:48
Dilma, в KOL уже есть все - не надо морочиться
НО Real - число в днях от Р.Х.

Народ говорит, что где-то еще этот формат любят...

[size=-2]------ Добавлено в 21:01
Т.е, отсутствие заморочек при использовании Human Readable String - это использование KOL-овских преобразований.
Но они используют Real (который и милисекунды не исключает, кстати).

Может просто в DataTimeConvertor-е еще два метода добавить (Real <-> Unix)...
карма: 9

0
Ответов: 8926
Рейтинг: 823
#10: 2007-03-12 21:11:04 ЛС | профиль | цитата
Galkov, если делать отдельный элемент, то формат даты на входе должен быть любым, с любыми разделителями и определяться автоматически- а это можно сделать только работая со строкой без применения функций даты и времени, а уже после приведения входа к KOL-овскому формату использовать и KOL-овские функции, а формат даты на выходе должен определять пользователь, как это сделано в элементе Time.
А Dilma, думается, ничего не скажет, а подождёт

[size=-2]------ Добавлено в 21:11
Сказал, однако
карма: 19

0
Ответов: 9906
Рейтинг: 351
#11: 2007-03-12 21:13:27 ЛС | профиль | цитата
Леонид писал(а):
с любыми разделителями и определяться автоматически- а это можно сделать

Чего
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2007-03-12 21:30:59 ЛС | профиль | цитата
Galkov писал(а):
Народ говорит, что где-то еще этот формат любят...

может где-то и любят, а я же говорю про вполне конкретные вещи и задачи. Кроме того хранение времени в виде целого числа так же без дополнительных заморочек позволяет скажем быстро и просто получать разницу во времени между двумя метками простым вычитанием:
delta = time2 - time2
хотим в минутах делим на 60, в часах на 60*60

для получения следующей отметки времени, отстоящей скажем на h часов от текущей имеем:
next_time = cur_time + h*60*60
карма: 27
0
Ответов: 8926
Рейтинг: 823
#13: 2007-03-12 21:31:58 ЛС | профиль | цитата
Galkov, (1/12/66 12 36 00) (12,2006'1.37.05) (01"01"07) - пользователь может навводить и не такое
карма: 19

0
Ответов: 3655
Рейтинг: 69
#14: 2007-03-12 21:39:43 ЛС | профиль | цитата
Леонид писал(а):
(1/12/66 12 36 00) (12,2006'1.37.05) (01"01"07) - пользователь может навводить и не такое

Короче всё что не цифра - разделитель.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2007-03-12 21:48:06 ЛС | профиль | цитата
обратный парсинг без указания пользователем маски просто не возможен. Поэтому не ддумаю, что имеет смысл тут говорить о каких-то разделителях.
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)