Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-10667
Dennis
2003-08-25 14:19
2003.09.04
---|Ветка была без названия|---


14-10954
Kost
2003-08-15 22:03
2003.09.04
Графика


14-10958
Soft
2003-08-15 15:58
2003.09.04
SCO: крысы бегут


14-10950
Soft
2003-08-15 18:45
2003.09.04
АнтиМикрософт


1-10677
Боян Георгиев
2003-08-20 23:52
2003.09.04
TMainMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский