El título del post lo dice claro. Imaginemos que tenemos un número grande, por ejemplo 58492, y que ese número son los segundos que ha tardado una tarea en realizarse, o el tiempo que ha pasado desde un evento determinado, pero a nosotros como humanos, este número no nos dice nada, lo entenderíamos mejor si lo expresamos como 16:14:52 como en todo, tenemos varias formas de hacerlo y voy a proponer dos.
Usando el comando date
La primera de ellas, me viene a la cabeza como más sencilla, ya que el mismo comando se encarga de hacaerlo, sólo tenemos que formatear la información de la manera debida. Por ejemplo:
$ date -u +%H:%M:%S –date=’@58492′
En este caso, le estamos diciendo que trabaje en GMT (-u), con esto, nos ahorramos que transforme la hora a la zona horaria en la que estamos actualmente, ya que puede variar el tiempo, y como estamos hablando de tiempo transcurrido, esto no depende de la zona horaria. Luego le pasamos el formato de salida con +»Formato» diciéndole cómo queremos que exprese la salida. Y por último la cantidad de segundos, precedido de arroba (@) para indicar que sólo son segundos.
Así podemos hacer también lo siguiente:
$ date -u +»%H horas, %M minutos y %S segundos» –date=’@58492′
16 horas, 14 minutos y 52 segundos
Aunque quedaría un poco raro cuando diga 1 horas, 0 minutos y 0 segundos en lugar de 1 hora. Eso sería mucho más elaborado, implicaría parsear la salida de date (con awk por ejemplo) y sería más trabajoso.
Una función para Bash
Pero también nos podemos crear una función específica para esto. Al fin y al cabo, se trata de hacer divisiones sobre la cantidad de segundos y desde hace años, Bash es muy bueno en matemáticas (si le pasamos la entrada como se la tenemos que pasar, y no le decimos nada raro.
1 2 3 4 5 6 7 8 | function seconds_to_time() { local TIME="$1" local h=$(($TIME/3600)) local m=$((($TIME%3600)/60)) local s=$(($TIME%60)) printf "%02d:%02d:%02d\n" $h $m $s } |
Y luego la llamamos así:
$ seconds_to_time 58492
16:14:52
Lo malo, es que la función es específica para esto, y no hará nada extra (como hace time). Lo bueno es que podemos personalizar la salida como queramos (podemos meter sentencias condicionales para crear una salida compleja tipo «1 hora y 14 minutos». Además, llamar a esta función es mucho más rápido que hacerlo con date. Sólo decir que date implica una ejecución que es lento (carga en memoria, creación de proceso, cambios de contexto, etc, mientras que con la función no hay que hacer nada de eso, ya que no salimos del mismo proceso Bash que se encarga de interpretarlo. Además, tanto las operaciones matemáticas como printf son órdenes internas de Bash.
Foto principal: Ales Krivec
Pingback: Cómo convertir una cantidad de segundos a horas, minutos y segundos en Bash | PlanetaLibre /
I’ve never been more excited to explore web slots. The biggest ones are calling. สล็อตเว็บใหญ่ที่สุด
Cool you record, the data is extremely salubrious further entrancing, I’ll give you an associate with my scene. pasar 123 slot
I get a kick out of the chance to suggest only fine in addition to proficient data and realities, thus see it: 안전한 토토사이트
The market needs more transparency regarding the durability of slots. สล็อตเว็บตรง แตกง่าย
This is likewise a decent post which I truly appreciated perusing. It isn’t each day that I have the likelihood to see something like this.. เว็บรวมสล็อตทุกค่าย
Your websites facilitate all the more each else volume is so engaging further serviceable It chooses me occur for withdraw reprise. I will in a split second snatch your rss channel to remain educated of any updates. 대구맛집
For genuine devotees of this string I will address is a free on the web! สล็อตโรม่า
Excellent .. Amazing .. I’ll bookmark your blog and take the feeds also…I’m happy to find so many useful info here in the post. we need work out more techniques in this regard. thanks for sharing. Pokdeng
Goodness! Such an astounding and supportive post this is. I outrageously cherish it. It’s so great thus amazing. I am simply flabbergasted. I trust that you keep on doing your work like this later on moreover. concierge doctor
If you’re hunting for inspired cosplay david martinez jacket , then look no further because Fanzilla Jackets offers an exclusive range of leather jackets
Within this theme internet page, you’ll see the very best facts, you’ll want to watch over that higher level of aspect.
Purple Fusion