Não conseguimos carregar os anúncios.Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
2. Re: calculo usando o bc
alexaboladausa Debian
Post recolhido
Enviado em 29/07/2023 - 15:01h
Olá, para calcular o tempo com precisão de anos, meses e dias a partir do total de horas, você pode usar um conjunto de comandos Unix juntamente com o bc. Segue abaixo um exemplo de como você pode fazer isso:
- O número de anos é obtido dividindo o total de horas pelo número de horas em um ano.
- O número de meses é obtido calculando o resto da divisão do total de horas pelo número de horas em um ano e dividindo isso pelo número de horas em um mês.
- O número de dias
3. Re: calculo usando o bc
aguamoleusa KUbuntu
Post recolhido
Enviado em 29/07/2023 - 15:35h
@alexabolada o bash é limitado em dar o resultado como por exemplo: 91.800 segundos como saída sendo 25h e 30min e 30seg?
O Bash puro é capas de resolver isso?
4. Re: calculo usando o bc
alexaboladausa Debian
Post recolhido
Enviado em 29/07/2023 - 15:35h
Olá! Sim, o bash é capaz de resolver isso. Você pode usar a matemática do bash para converter as horas, minutos e segundos. Veja o exemplo:
echo "$HORAS horas, $MINUTOS minutos e $SEGUNDOS segundos"
No exemplo acima, 3600 é o número de segundos em uma hora e 60 é o número de segundos em um minuto. A operação % é a operação de módulo, que retorna o resto de uma divisão.
O comando echo adiante apresenta a conversão do tempo total em segundos para o formato de "horas minutos e segundos".
Na variável $dias_por_mes os valores pode variar de 29, 30 e 31 dias o mês.
dias_por_mes="30"
Não podemos colocar uma variável dia do mês como uma variável constante.
horas ligado = 36822
O valor "4 anos, 3 meses e 4 dias." não esta batendo com o valor de "4 anos, 2 meses e 12 dias" do gnome-disk-utility
6. Re: calculo usando o bc
alexaboladausa Debian
Post recolhido
Enviado em 29/07/2023 - 17:06h
Olá!
Primeiramente, vamos entender seu problema. A variável $dias_por_mes não pode ser constante, pois a quantidade de dias pode mudar dependendo do mês.
Para solucionar isso no shell script, você pode usar uma estrutura de controle do tipo case...esac para definir o valor da variável $dias_por_mes de acordo com o mês corrente. O exemplo a seguir demonstra como fazer isso:
mes=`date +%m`
case $mes in
"01"|"03"|"05"|"07"|"08"|"10"|"12")
dias_por_mes=31
;;
"04"|"06"|"09"|"11")
dias_por_mes=30
;;
"02")
dias_por_mes=28 # Considera o mês de Fevereiro não bissexto
;;
esac
Quanto ao problema com a divergência de horas ligado indicadas pelo gnome-disk-utility, precisamos de mais alguns detalhes para entender melhor esse caso:
1. Você pode compartilhar conosco como você está calculando o tempo ligado e qual é o comando que você está utilizando?
2. As informações apresentadas pelo gnome-disk-utility estão atualizadas?
Além disso, é importante saber que a indicação "4 anos, 3 meses e
7. Re: calculo usando o bc
paulo1205usa Ubuntu
Post recolhido
Enviado em 30/07/2023 - 20:06h
“Anos” e “meses” não são unidades muito precisas.
O que é um mês decorrido? É o tempo entre o dia 30 do mês passado e o dia 30 do mês corrente (30 só porque é dia 30 de julho no momento em que eu escrevo)? Se sim, então pode ter variação numa conversão de qualquer outra unidade para esta, e vice-versa.
Fora as anomalias: e se o mês passado tivesse sido janeiro, e eu comecei a contar no dia 30, quando acaba o mês? e se tivesse sido fevereiro, e hoje fosse 30 de março, quando eu teria de começar a contar o mês que passou?
Análogo para anos. Fora tipos de calendários diferentes, para os quais o ano pode ter desde 346 até mais de 400 dias de duração, mesmo no calendário gregoriano temos anos com durações diferentes, e uma duração média que não corresponde a uma quantidade inteira de dias
... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)
8. Re: calculo usando o bc
aguamoleusa KUbuntu
Post recolhido
Enviado em 30/07/2023 - 21:17h
Cara hora dia anos é loucura, eles podiam ter colocado a cada virada de 99 adicionasse 1 na frente sendo 100, mas não, tiveram que dificultar uma coisa que era para ser simples como 99h 99min 99seg e mais 1 seg virava 1dia. sem condição.
Conseguiram transformar uma coisa simples em uma coisa complexa.
Eu estava vendo um vídeo uma vez do safesrc explicando a trabalheira que é manter um sistema assim.
9. Re: calculo usando o bc
msoliverusa Debian
Post recolhido
Enviado em 31/07/2023 - 00:18h
Sugestão, com o awk.
cat idade.awk
BEGIN {
a=31556952;d=86400;h=3600
}
{
T = ($1 - $2)
Y = int(T / a)
D = int((T % a) / d)
H = int(int(T % 86400) / 3600)
M = int((T % 3600) / 60)
S = int((T % 3600) % 60)
printf "%s Anos, %03d dias, %02d horas, %02d minutos e %02d segundos.\n", Y, D, H, M, S
}
[b]#Exenplo
00:03:08 #Hora da execução do comando.
49 Anos, 000 dias, 12 horas, 03 minutos e 08 segundos #Resposta
Uso
awk -f idade.awk <<< 'data_fim data_inicio'
Obs.: Data inicio/fim, em uts, conforme exemplo acima. FIM > INICIO Só tem um pequeno "defeito..... :)"
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________