Форум: "Потрепаться";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Вниз2 dates to 1 Найти похожие ветки
← →
race1 (2003-08-17 15:41) [0]у меня есть две даты, не строчки, а цифры (TDateTime). Можно как-нибудь эти ДВЕ цифры соединить в одну, ибо так хранить удобнее.
Не строчки конкатить и разбивать потом, а именно цифры соединить.
← →
Anatoly Podgoretsky (2003-08-17 15:43) [1]d1+d2
← →
VID (2003-08-17 15:47) [2]to Anatoly: а разбивать как будешь ?
to race1: похоже что никак... сам прикинь, откуда потом "дешифратору" взять инфу для разбиения суммы ?
всё таки придётся хранить в виде строки... причём d1+"@"+d2, т.е. ещё и использовать какой-нить разделитель
← →
race1 (2003-08-17 16:02) [3]жалко, конечно :( ну да ладно
← →
app (2003-08-17 16:15) [4]VID © (17.08.03 15:47) [2]
А как ты думаешь после c := a + b = 12
можно сказать чему равно a или b?
Зачем в виде строки, лучше
DoubleDate = record
left: TDateTime;
right: TDateTime;
end;
← →
VID (2003-08-17 19:20) [5]to app: один из нас чего то недопонимает: либо я, либо ты.
человеку надо хранить d1+d2 в виде какого-то double(float) числа, с возможностью впоследствии снова разложить это число на d1 и d2 что бы новые d1 и d2 соотвествовали старым d1 и d2.
а ты предлагаешь создать новый тип = record и где тут ОДНО Double(float) число получается ?
← →
Anatoly Podgoretsky (2003-08-17 19:27) [6]Я показал как хранить, но из суммы не возможно выделить состовляюшии. А в TDateTime можно хранить только сумму, или надо два TDateTime, чудес то не бывает. Я что зря приводил формулу, если ты знаешь как это сделать в однои TDateTime то поделись с общественностью.
← →
Просто случайный (2003-08-17 19:47) [7]2 race1 © (17.08.03 15:41)
Расскажи нам бестолковым, сколько байт (или бит) ты хочешь съэкономить, откуда растут ноги этой проблемы. Иначе вряд ли кто-то ответит.
← →
Anatoly Podgoretsky (2003-08-17 20:02) [8]А какая разнича, сколько съэкономит, ну хочет хранить 2 dates to 1 ну и пусть, но только пусть не спрашивает как разделить эту сумму.
← →
Просто случайный (2003-08-17 20:05) [9]2 Anatoly Podgoretsky © (17.08.03 20:02) [8]
Полностью согдласен, но зачем засорять форум?
← →
Anatoly Podgoretsky (2003-08-17 20:11) [10]Просто случайный (17.08.03 20:05) [9]
Ну так начни с себя или ты про race1, но все равно это его право задать вопрос в той форме, в какой он хочет, пока не нарушает правила. Ну а у нас тоже право на ответы, в любой форме с теми же ограничениями. Или тебе надо подтверждение от модератора?
← →
VID (2003-08-17 20:41) [11]to Anatoly: ты просто не понял вопроса...
← →
Anatoly Podgoretsky (2003-08-17 20:49) [12]Нет я его понял и дал варианты, хранить как одно можно только как сумму, не важно дата это или число, можно хранить два как одно целое, на это тоже дан один из вариантов, существуют и другии.
← →
VID (2003-08-17 21:02) [13]to Anatoly: просто он хотел что бы была потом ещё возможность разбить сумму(или точнее склейку), на исходные части...
ладно, тут уже не о чем говорить...
← →
Polevi (2003-08-17 21:07) [14]если только даты тогда MAKELONG, HIWORD, LOWORD
← →
Anatoly Podgoretsky (2003-08-17 21:09) [15]VID © (17.08.03 21:02) [13]
Для этого было предложено хранить эти два как одно целое, например
Polevi © (17.08.03 21:07) [14] или
app © (17.08.03 16:15) [4] или
VID © (17.08.03 15:47) [2]
← →
uw (2003-08-18 09:19) [16]В году примерно Pi*10^7 секунд, поэтому в 4 байта влезет больше 136 лет. Пересчитай свои даты в секунды от 2000-го года, скажем. Первую дату положи в первые 4 байта TDateTime, вторуе – во вторые. И если точности до 1 секунды хватает, то будет тебе счастье на ближайшие 130 лет! Если же нужна бОльшая точность, то и счастье будет покороче. Но так уже лет 30 никто не делает.
← →
Anatoly Podgoretsky (2003-08-18 09:27) [17]Но так уже лет 136 никто не делает. А те кто делал пострадали в 2000 году.
← →
uw (2003-08-18 09:37) [18]Пострадали те, кто брали не 2000-й, а 1812-й.
← →
Ketmar (2003-08-18 09:37) [19]>#5
если уж на то пошло, вопрос некорректен. сирець неверен. TDateTime представляет ЧИСЛО, но никак не ЦИФРУ. ы?
← →
vopros (2003-08-18 11:08) [20]Я так думаю что наша страна до сих пор в одном месте. Потому что есть любители соединять, скреплять.Потом разбирайся что он там натворил.
← →
Delirium (2003-08-18 12:26) [21]TDateTime, число с 15-ю знаками, т.е. Double, таким образом 2 даты - 30 знаков, а Extended - всего-то 19 знаков. Вывод - без потерь не склеить.
← →
nikkie (2003-08-18 15:05) [22]ну давайте и я версию предложу. :))
если речь о датах, то это целые числа. запихиваем в TDateTime = double по формуле date1 + 1/date2.
>ибо так хранить удобнее
надо же...
← →
alxx (2003-08-18 15:12) [23]туда:
DD := trunc(D1)+(trunc(D2) shl 16);
обратно:
D1 := trunc(DD) and $0000FFFF;
D2 := trunc(DD) shr 16;
еще на пару тысяч лет хватит
← →
ZrenBy (2003-08-18 15:13) [24]преобразовать с потерей точности в smalldatetime - 4 байта
потом Polevi © (17.08.03 21:07) [14]
← →
alxx (2003-08-18 15:15) [25]А вообще нужно различать поняти числа и цифры :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c