|
|
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
Помогите! На Delphi 7 следующий код возвращает 0 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 20:27 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
D1 и D2 - точно даты со временем после преобразования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 20:29 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
wadman D1 и D2 - точно даты со временем после преобразования? я уже не помню точно, но не должна ли быть D1 меньше (либо равна) D2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 20:34 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
Все хуже: HoursBetween = Round((D2-D1)*24) (ABS я пропустил) Так вот (D2-D1)*24 = 0.99999 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 20:39 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
А если так? Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 20:48 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
Lisichkin, Посмотрите в DateUtils код HoursBetween. В XE3 такое Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 20:54 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
в древнем xe7/8 всё чОтко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 21:46 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
Может, в системе у ТС нестандартный формат времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 21:50 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 22:01 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2020, 22:11 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
DimaBr, Там Trunc вместо Round стоит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 12:53 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Ну вообще это логично: 59 минут - это не час. Но вот погрешность они не учли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 12:57 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
Ещё один повод перейти с Delphi 7 на что-то более новое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 13:25 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
К сожалению, в рамках моего проекта перейти на другую версию не возможно. Лечится так (взял кусок из Delphi XE): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. P.S. Даты произвольны и никогда не приходят в систему из StrToDateTime - а взяты из базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 17:42 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
Извращенец. (D1-D2) * 24 = кол-во часов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 17:44 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
rgreat Извращенец. (D1-D2) * 24 = кол-во часов. Не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 18:42 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
DimaBr Не работает Trunc((D1 - D2) * 24 + 1 / 36000001) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 19:02 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ DimaBr Не работает Trunc((D1 - D2) * 24 + 1 / 36000001) формула отработает правильно, если D1 > D2 Если D1 < D2, то будет отрицательное значение +1 лишний час ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 20:58 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
DimaBr rgreat Извращенец. (D1-D2) * 24 = кол-во часов. Не работает Работа функции Round не соответствует твоим ожиданиям? ;) Что ты написал - то и получил. Чего хотел-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 21:19 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
defecator формула отработает правильно, если D1 > D2 defecator Если D1 < D2, то будет отрицательное значение +1 лишний час ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 21:46 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ defecator формула отработает правильно, если D1 > D2 defecator Если D1 < D2, то будет отрицательное значение +1 лишний час не поможет 25.11.20 00:00 - 24.11.20 23:00 по формуле получится 23 24.11.20 00:00 - 25.11.20 23:00 по формуле получится -24 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 21:54 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
rgreat >Работа функции Round не соответствует твоим ожиданиям? Моим соответствует. >Что ты написал - то и получил. Что ты предложил, то я и написал, демонстрируя, что твоё предложение не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 21:56 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
DimaBr Моим соответствует. Зачем ты тогда такую дичь с подобными округлениями написал? Что бы запутать топик стартера? Что ты предложил, то я и написал, демонстрируя, что твоё предложение не работает Т.е. ты не согласен с моим утверждением что "(D1-D2) * 24 = кол-во часов."? А уж как правильно double в integer перевести - это как бы должно быть известно каждому. Да и не ясно, надо ли вообще в int переводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 22:03 |
|
||
|
Проблема округления даты (Double)
|
|||
|---|---|---|---|
|
#18+
rgreat >Зачем ты тогда такую дичь с подобными округлениями написал? Предложи свой вариант округления, согласно своей же формуле >Что бы запутать топик стартера? Топикстартер уже нашёл верное решение, считать НЕ РАЗНИЦУ В ДАТАХ, а разницу в МИЛЛИСЕКУНДАХ >Т.е. ты не согласен с моим утверждением что "(D1-D2) * 24 = кол-во часов."? Как видишь, твоя идея с разницей в датах натыкается на погрешность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 22:28 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40020090&tid=2037848]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 467ms |

| 0 / 0 |
