powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Конвертация милисекунд в DateTime
11 сообщений из 11, страница 1 из 1
Конвертация милисекунд в DateTime
    #35586594
Bimbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет aLL!

Как сконвертировать значение м.секунд в поле\значение DateTime ?

Заранее благодарен за Ваши идеи.
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35586626
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если к переменной типа DateTime прибавить целое число, то это будет интерпретировано, как добавление указанного количества секунд. Следовательно, можно преобразовать так:

Код: plaintext
1.
2.
lnMilliSeconds =  1234567890 
?DTOT(date()) + m.lnMilliSeconds/ 1000 

Если взять какую-либо фиксированную дату, например, 01.01.1900, то впоследствии, можно определить количество дней. Поскольку разница двух переменных типа Date будет интепретироваться как количество дней.

Код: plaintext
1.
2.
3.
4.
lnMilliSeconds =  1234567890 
ltDateTime = DTOT({^ 1900 - 01 - 01 }) + m.lnMilliSeconds/ 1000 
?"Время = ", Ttoc(ltDateTime, 2 )
?"Дней = ", Ttod(ltDateTime) - {^ 1900 - 01 - 01 }

Впрочем, это вычитание можно сделать с любой датой.
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35586635
Bimbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть два поля с типом DateTime, ищу разницу(результат в м.секундах) и результат необходимо сохранить в 3-м поле с аналогичным типом DateTime

Надеялся на более изящное решение.
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35586652
BimboУ меня есть два поля с типом DateTime, ищу разницу(результат в м.секундах) и результат необходимо сохранить в 3-м поле с аналогичным типом DateTime

Надеялся на более изящное решение.
И как представляется разница дат в виде даты? Тип datetime без даты не существует.
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35586675
ГыГыГы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BimboНадеялся на более изящное решение.

Звучит как "Хочу пальцем ноги в носу ковырять, я померил - в ноздрю влезет, но как вставить никто не подскажет :( Очень странно что никто так не делает, руки-то свободны при этом"
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35587504
Bimbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И как представляется разница дат в виде даты? Тип datetime без даты не существует.

Спасибо за демонстрацию юмора. Для более точного формулирования проблемы - есть два значения 2009-10-10 15:10:10 и 2009-10-08 00:00:00, разница между ними составляет 1 день и 15 часов, для меня это 0000-00-01 15:10:10 хотя это и некорректный формат DateTime. Но идея моего вопроса должна быть понятной.

В конечном итоге мне необходимо представить разницу как MM-DD hh:mm:ss
Скорее всего необходимо писать свою функцию для преобразования м.секунд в формат MM-DD hh:mm:ss
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35587534
BimboДля более точного формулирования проблемы - есть два значения 2009-10-10 15:10:10 и 2009-10-08 00:00:00, разница между ними составляет 1 день и 15 часов, для меня это 0000-00-01 15:10:10 хотя это и некорректный формат DateTime. Но идея моего вопроса должна быть понятной.

В конечном итоге мне необходимо представить разницу как MM-DD hh:mm:ss
Скорее всего необходимо писать свою функцию для преобразования м.секунд в формат MM-DD hh:mm:ss
Идея сама по себе вполне жизнеспособная за одним маленьким исключением - в каких месяцах будет считаться разница? То есть, если бы нужен был формат DD hh:mm:ss (без месяцев), то никаких бы вопросов не возникало. А вот как быть с месяцами? Какое количество дней в месяце из четырех возможных вариантов будем брать?
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35587674
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и опять таки для представления пользователю использовать вормат 150
дней, 20 часов, 5 минут 47 секунд - Это нормально и правильно, но хранить
более логично имменно в секундах (ну или миллисекундах, если надо).

Нарисовть две функции, одна - получение кол-ва милисекунд по введенному
кол-ву дней, часов, минут, секунд, миллисекунд.
Другая - обратная: получение развернутого формата данного периода. Ну может
еще по желанию, получение в отдельности дней, часов, минут, ...

Или даже конвертайия в формат : 150,85 дней. Это уже по желанию. Но суть в
том, что при хранении длинны периода в секундах (миллисекундах) на выходе
можно достаточно просто получить любое представление длинны этого периода.
Если хранить иначе - конвертация может быть усложнена.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35588175
Bimbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идея сама по себе вполне жизнеспособная за одним маленьким исключением - в каких месяцах будет считаться разница? То есть, если бы нужен был формат DD hh:mm:ss (без месяцев), то никаких бы вопросов не возникало. А вот как быть с месяцами? Какое количество дней в месяце из четырех возможных вариантов будем брать?

Спасибо за замечание, с месяцами я "не угадал" в процессе изложения проблемы\идеи. Значит формат отображения разницы двух полей DateTime будет следующий - DDDD-hh:mm:ss , где DDDD-количество дней.
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35588446
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galyamov RinatНарисовть две функции ...
+1

Хранить надо в том формате, в котором удобно считать (в данном случае в секундах или миллисекундах, т.е. тип NUMERIC или INT), а при выводе конвертировать в удобный для просмотра вид.
...
Рейтинг: 0 / 0
Конвертация милисекунд в DateTime
    #35590376
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Dima T" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:6291322@sql.ru...
> Автор: Dima T
> Galyamov Rinat
> Нарисовть две функции ...
>
> +1
>
> Хранить надо в том формате, в котором удобно считать

В том числе сортировать и сравнивать.

А формат dddd:hh:mm:ss - родного в фоксе нет - если хранить в символьном, то
для любого расчета (в том числе для сравнения или сортировки) все равно
придется конвертировать к чему то другому. Или (но только для сранения
больше меньше равно и сортировки)хранить 1 секунду как "0000:00:00:01" -
только при таком "полноформатном" хранении сравнение будет корректным.

А для того, чтобы определить насколько один период больше другого придется
конвертировать к целому. Так не проще ли сразу хранить в целом?

PS DATETIME хранит иф-цию тоже не в том формате, в котором мы ее видим. Если
не ошибаюсь, в основе лежит тип double (дробная часть - время).


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Конвертация милисекунд в DateTime
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]