|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Доброго времени суток! Скинули готовый фрагмент кода на С++ в котором из числа получают дату. Например вводим число: 131596568 получаем дату: 24.01.2008. Подскажите как мне из процедуры void TDateLP::longToDate(long val) сделать функцию, чтобы можно было получать результат её выполнения? Код: plaintext 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. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 19:15 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
DoctorRoot, написать return вместо printf, но лучше изучить Си. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2021, 20:18 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
DoctorRoot, Код не сильно корректный. В зависимости от настроек компилятора выравнивания, можно получить мусор. Лучше уж union использовать для подобного ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 00:05 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
rdb_dev, спасибо за ответ. Дело в том, что я занимаюсь переходом из одной системы в другую. Значения хранятся в БД MS SQL, а алгоритм мне скинули программы из которой я осуществляю переход. Знать Си - это хорошо, вот только за последние 10 лет он встретился впервые :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 09:11 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Формулы приведения такие: Код: plaintext 1. 2. 3.
% - остаток от деления Целое() - округление до целого вниз ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 09:20 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
DoctorRootЗнать Си - это хорошо, вот только за последние 10 лет он встретился впервые :) А в дельфийском разделе тебе впервые встретился Дельфи. Почему вообще тебе поручили эту работу?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 12:31 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Учитывая весь ужас происходящего я сильно рекомендую автору не трогать язык Си а формулу перевода времени просто реализовать в Delphi. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 16:01 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
mayton Учитывая весь ужас происходящего я сильно рекомендую автору не трогать язык Си а формулу перевода времени просто реализовать в Delphi. Там изначально int-порно какое-то, лучше в тип date преобразовать один раз и забыть про это безобразие. Можно виртуальный столбец сделать, где будут полноценные даты. Средств MSSQL достаточно для конвертации. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 19:13 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Зачем эти игры с целочисленным делением? В любом языке есть стандартное API для работы с календарными расчетами. И надо иметь ооочень много оснований чтобы делать что-то своё велосипедное в этом направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 20:20 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
mayton Зачем эти игры с целочисленным делением? В любом языке есть стандартное API для работы с календарными расчетами. И надо иметь ооочень много оснований чтобы делать что-то своё велосипедное в этом направлении. Потому что кто-то изобрел велосипед где, с учетом обратной записи при хранении, младший байт - это день, следующий - это месяц, а два оставшихся вместе - год. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 21:11 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
BCD это, вообще-то довольно старый формат. Местами весьма удобный. Быстро преобразуется, правильно сортируется. https://www.digital-detective.net/binary-coded-decimal-timestamps/ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:18 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, это не BCD, это изобретение нуба не знающего даже про time_t ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:22 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, формат внутреннего представления борландовского TDateTime тоже не очень сложен - double. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:26 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Siemargl Dimitry Sibiryakov, это не BCD, это изобретение нуба не знающего даже про time_t Пока ты живешь в С/С++ мире - time_t действительно очень удобен. Переезжаешь в те-же базы данных и опаньки. Начинаешь считать что-нибудь и более-менее реальной астрономии и упираешься в начало эпохи. В общем, нубы может и изобретают свои форматы, но вот гуру вспоминая свои нубские года удивляются собственной прозорливости. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:30 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Но его не разложить на составляющие простыми битовыми операциями, формула там довольно зубодробительная. Этот же формат явно для какого-то слабого железа был сделан. Возможно даже без операции деления вообще. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:32 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
mayton Зачем эти игры с целочисленным делением? В любом языке есть стандартное API для работы с календарными расчетами. И надо иметь ооочень много оснований чтобы делать что-то своё велосипедное в этом направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:32 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
White Owl, time_since_epoch, это ещё куда не шло... В борландовском TDateTime упираешься в 1899-12-30T00:00 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:35 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Но его не разложить на составляющие простыми битовыми операциями, формула там довольно зубодробительная. Этот же формат явно для какого-то слабого железа был сделан. Возможно даже без операции деления вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 22:48 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
rdb_devТы про double? Я про любой формат "XXX since epoch", включая, естественно, дельфийский TDateTime и линуховый time_t. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 00:32 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
DoctorRoot Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 00:43 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, спасибо за ответ. В дельфийском разделе мне ответили и я успешно применил этот код. То как это работает мне не было понятно, теперь я знаю. А что с этим какие-то есть проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 09:41 |
|
Получить результат выполнения
|
|||
---|---|---|---|
#18+
Dima T, спасибо большое! Язык С и не собирался трогать, это он ко мне полез ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2021, 09:46 |
|
|
Start [/forum/topic.php?fid=57&fpage=2&tid=2017168]: |
0ms |
get settings: |
25ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
94ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
605ms |
get tp. blocked users: |
2ms |
others: | 349ms |
total: | 1113ms |
0 / 0 |