Вместо использования sh для запуска скрипта,
попробуйте выполнить следующую команду:
bash ./array.sh
Ну, так как никто больше не повысился, я напишу легкий код, чтобы сделать это:
x = ms / 1000
seconds = x % 60
x /= 60
minutes = x % 60
x /= 60
hours = x % 24
x /= 24
days = x
я просто рад, что Вы остановились в дни и не спрашивали в течение многих месяцев. :)
Примечание, что в вышеупомянутом, предполагается, что /
представляет целочисленное деление усечения. Если Вы будете использовать этот код на языке, где /
представляет деление с плавающей точкой, необходимо будет вручную усечь результаты подразделения по мере необходимости.
Необходимо использовать функции даты и времени любого языка, который Вы используете, но, только для забавы вот код:
int milliseconds = someNumber;
int seconds = milliseconds / 1000;
int minutes = seconds / 60;
seconds %= 60;
int hours = minutes / 60;
minutes %= 60;
int days = hours / 24;
hours %= 24;
Ваш выбор прост:
Я предложил бы использовать безотносительно функций/библиотек даты/времени Ваш предпочтительный язык/платформа обеспечивает. Также строковые функции форматирования выезда, поскольку они часто обеспечивают простые способы передать дату/метки времени и произвести человекочитаемый формат строки.
Позвольте A быть суммой миллисекунд. Затем Вы имеете:
seconds=(A/1000)%60
minutes=(A/(1000*60))%60
hours=(A/(1000*60*60))%24
и так далее (%
оператор модуля).
Hope это помогает.