Автор Тема: [Новичок, Осваивающий] Перевод миллисекунд в формат ДД:ЧЧ:ММ:СС.МСС  (Прочитано 10438 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4016
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Дано количество миллисекунд. Задача состоит в построении строки формата ДД:ЧЧ:ММ:СС.МСС из данного количества миллисекунд без использование каких-либо библиотек. Например 245382036 миллисекунд - это 2 дня 20 часов 9 минут 42 секунды и 36 миллисекунд, из которых надо сформировать строку
2:20:09:42.036Ведущие нули желательны, но не обязательны. Ответ скрывайте под тэгом спойлера.

PS: Обратите внимание на статус участников, которые могут принять участие в конкурсе

Русское сообщество AutoIt


Оффлайн Maalik [?]

  • Осваивающий
  • **
  • Сообщений: 74
  • Репутация: 33
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Здравствуйте, возьмем число 2010201022 и переведем в переведем формат даты)

Код: AutoIt [Выделить]
$m = 2010201022;

$day = Round($m / (86400 * 1000))
$hour = Mod($m / 86400 * 1000) / 3600
$minutes = Mod($day / 3600 * 1000) /60
$seconds = Mod($hour / 60 * 1000);

;;; Вот так наверное) Писал на скоряк)

 


Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 437
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include <Date.au3>

Global $Days, $iHour, $iMins, $iSecs
Global $iTicks = 245382036

_TicksToTime($iTicks, $iHour, $iMins, $iSecs)
$Days = StringFormat('%02d', $iHour/24)

ConsoleWrite($Days & ":" & StringFormat('%02d:%02d:%02d', $iHour - $Days*24, $iMins, $iSecs)&"."&StringRight($iTicks, 3))

 

« Последнее редактирование: Март 12, 2012, 11:06:26 от ---Zak--- »
OS: WinXp SP3 (RUS), Win7 (x86/x64)


My development:
http://autoit-script.ru/index.php/topic,11541.0.html

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4016

  • Автор темы
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Добавил в условие. Не рекомендуется использование каких-либо библиотек.

Русское сообщество AutoIt


Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 437
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
(нажмите для показа/скрытия)
« Последнее редактирование: Март 12, 2012, 11:43:53 от Kaster »

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4016

  • Автор темы
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Microteam
твой ответ не засчитывается, потому что
Microteam  [?]
Цитировать
;;; Вот так наверное) Писал на скоряк)
и потому что, нет выходного параметра.

Оффлайн XpycT [?]

  • Скриптер
  • ****
  • Сообщений: 380
  • Репутация: 131
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Kaster
Там еще и ошибка
Цитировать
error: Mod() [built-in] called with wrong number of args.


Рожденный летать, висеть не может.

Джедаям запрещено участвовать в любых предприятиях, ставящих целью получение прибыли. Мы не можем извлекать выгоду из помощи, которую оказываем.

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4016

  • Автор темы
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
заслуженная победа у ---Zak---  8)

вот мое решение, практически полностью повторяет решение победителя

Код: AutoIt [Выделить]
$msec = 885858855
$MSS = 1000
$MSM = $MSS*60
$MSH = $MSM*60
$MSD = $MSH*24
$D = Floor($msec/$MSD/1)
$MS = Mod($msec, $MSD)
$H = Floor($MS/$MSH)
$MS = Mod($MS, $MSH)
$M = Floor($MS/$MSM)
$MS = Mod($MS, $MSM)
$S = Floor($MS/$MSS)
$MS = Mod($MS, $MSS)
$fmt = '%d:%02d:%02d:%02d.%03d'
$str = StringFormat($fmt, $D, $H, $M, $S, $MS)
ConsoleWrite("Milliseconds given:" & @TAB & $msec & @CRLF)
ConsoleWrite("Formatted version:" & @TAB & $str & @CRLF)
 


Русское сообщество AutoIt


Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 437
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0

Оффлайн XpycT [?]

  • Скриптер
  • ****
  • Сообщений: 380
  • Репутация: 131
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Раз конкурс уже завершен, вот мой пример скрипта
(нажмите для показа/скрытия)

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2897 Просмотров
Последний ответ Октябрь 23, 2009, 10:57:45
от Vlasssov
4 Ответов
3628 Просмотров
Последний ответ Январь 20, 2010, 16:16:04
от Blink
2 Ответов
2412 Просмотров
Последний ответ Январь 06, 2011, 18:52:24
от Viktor217
4 Ответов
4101 Просмотров
Последний ответ Март 08, 2011, 19:30:45
от Alexander
0 Ответов
2271 Просмотров
Последний ответ Август 22, 2011, 22:56:41
от mohus
4 Ответов
3154 Просмотров
Последний ответ Январь 29, 2012, 22:07:58
от CreatoR
11 Ответов
10146 Просмотров
Последний ответ Март 13, 2012, 02:24:31
от AZJIO
20 Ответов
14266 Просмотров
Последний ответ Март 14, 2012, 00:21:18
от Arei
13 Ответов
8769 Просмотров
Последний ответ Декабрь 05, 2012, 19:44:23
от CreatoR
3 Ответов
1621 Просмотров
Последний ответ Декабрь 22, 2015, 22:12:27
от ra4o