Как использовать ARGV *, как мне реализовать аргумент командной строки в нем - PullRequest
0 голосов
/ 03 июля 2019

<< - док Измените метод суммы времен для любого количества значений времени, переданных этому методу. Например: («11:23:07», «22:53:45», «0:23:23», «23:45:56») -> «2 дня и 10:26:11» ("0:45:34", "0:15:58") -> 01:01:32; ("11:23:07", "22:53:45") -> 1 день и 10:16:52 документ

Но я хочу это как 2 [/название] [Вход] "24:01:10" "10:30:50" [/ Вход] [выход] «Неверное значение времени 24 часа» [/ Выход]

===

[имя] 3 [/название] [Вход] "0:45:34" "0:15:58" [/ Вход] [выход] «1:01:32» [/ Выход]

ставит sum_time ("11:23:07", "22:53:45", "0:23:23", "23: 45: 56 enter code here")

1 Ответ

0 голосов
/ 03 июля 2019

Как использовать ARGV из вашего скрипта:

require 'time'
def to_seconds(timestamp)
  timestamp.hour * 3600 + timestamp.min * 60 + timestamp.sec
end
def sum_time(*time)
  # initialize the variables
  total_seconds = 0
  time.each do |time_item|
    timestamp = Time.parse(time_item)
    total_seconds += to_seconds(timestamp)
  end
  sum_time_string = ""
  days = (total_seconds / (24 * 3600)).to_i
  sum_time_string = "#{days} day & " if days > 0
  sum_time_string += Time.at(total_seconds).utc.strftime("%H:%M:%S")
end
puts sum_time(*ARGV)

Вызов:

ruby your_script.rb 11:23:07 22:53:45 0:23:23 23:45:56
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...