Discussion:
[shell-script] Soma em data
Marcos Santos Zarbato zarbato@gmail.com [shell-script]
2018-06-26 17:34:41 UTC
Permalink
Boa tarde,

A partir do dia corrente necessito da seguinte sequencia:

2018062600
2018062603
2018062606
2018062609
2018062612
2018062615
2018062618
2018062621
2018062700
2018062703
2018062706
2018062709
2018062712
2018062715
2018062718
2018062721
2018062800

Somando 3 horas na data, mais a hora concatenada.
Usando:
for i in `seq 0 3 48`; do echo `date -d "+$i hours" '+%Y%m%d'``printf
"%02d\n" $(($i - (($i /24) * 24)))`; done

O problema é que desta forma a soma da data é arredondada. A partir das 12
horas, é arredondado para o próximo dia (em negrito) e não posso ter esse
resultado. Vejam como fica o resultado:

2018062600
2018062603
2018062606
2018062609
201806*27*12
201806*27*15
201806*27*18
201806*27*21
2018062700
2018062703
2018062706
2018062709
201806*28*12
201806*28*15
201806*28*18
201806*28*21
2018062800

Como faço para que operações com o date não arredonde o resultado?


Obrigado
Rogerio Batista rogbatista@gmail.com [shell-script]
2018-06-26 17:54:49 UTC
Permalink
for i in `seq 0 3 48`; do echo `date --date="20180626 00 +$i hours"
'+%Y%m%d%H'`; done
Post by Marcos Santos Zarbato ***@gmail.com [shell-script]
Boa tarde,
2018062600
2018062603
2018062606
2018062609
2018062612
2018062615
2018062618
2018062621
2018062700
2018062703
2018062706
2018062709
2018062712
2018062715
2018062718
2018062721
2018062800
Somando 3 horas na data, mais a hora concatenada.
for i in `seq 0 3 48`; do echo `date -d "+$i hours" '+%Y%m%d'``printf
"%02d\n" $(($i - (($i /24) * 24)))`; done
O problema é que desta forma a soma da data é arredondada. A partir das 12
horas, é arredondado para o próximo dia (em negrito) e não posso ter esse
2018062600
2018062603
2018062606
2018062609
201806*27*12
201806*27*15
201806*27*18
201806*27*21
2018062700
2018062703
2018062706
2018062709
201806*28*12
201806*28*15
201806*28*18
201806*28*21
2018062800
Como faço para que operações com o date não arredonde o resultado?
Obrigado
Rogerio Batista rogbatista@gmail.com [shell-script]
2018-06-26 18:00:29 UTC
Permalink
for i in `seq 0 3 48`; do date --date="today 00 +$i hours" '+%Y%m%d%H'; done
Post by Rogerio Batista ***@gmail.com [shell-script]
for i in `seq 0 3 48`; do echo `date --date="20180626 00 +$i hours"
'+%Y%m%d%H'`; done
Post by Marcos Santos Zarbato ***@gmail.com [shell-script]
Boa tarde,
2018062600
2018062603
2018062606
2018062609
2018062612
2018062615
2018062618
2018062621
2018062700
2018062703
2018062706
2018062709
2018062712
2018062715
2018062718
2018062721
2018062800
Somando 3 horas na data, mais a hora concatenada.
for i in `seq 0 3 48`; do echo `date -d "+$i hours" '+%Y%m%d'``printf
"%02d\n" $(($i - (($i /24) * 24)))`; done
O problema é que desta forma a soma da data é arredondada. A partir das
12 horas, é arredondado para o próximo dia (em negrito) e não posso ter
2018062600
2018062603
2018062606
2018062609
201806*27*12
201806*27*15
201806*27*18
201806*27*21
2018062700
2018062703
2018062706
2018062709
201806*28*12
201806*28*15
201806*28*18
201806*28*21
2018062800
Como faço para que operações com o date não arredonde o resultado?
Obrigado
Marcos Santos Zarbato zarbato@gmail.com [shell-script]
2018-06-26 18:35:13 UTC
Permalink
Obrigado.

Atendeu a minha necessidade.

Marcos
Post by Rogerio Batista ***@gmail.com [shell-script]
for i in `seq 0 3 48`; do echo `date --date="20180626 00 +$i hours"
'+%Y%m%d%H'`; done
Post by Marcos Santos Zarbato ***@gmail.com [shell-script]
Boa tarde,
2018062600
2018062603
2018062606
2018062609
2018062612
2018062615
2018062618
2018062621
2018062700
2018062703
2018062706
2018062709
2018062712
2018062715
2018062718
2018062721
2018062800
Somando 3 horas na data, mais a hora concatenada.
for i in `seq 0 3 48`; do echo `date -d "+$i hours" '+%Y%m%d'``printf
"%02d\n" $(($i - (($i /24) * 24)))`; done
O problema é que desta forma a soma da data é arredondada. A partir das
12 horas, é arredondado para o próximo dia (em negrito) e não posso ter
2018062600
2018062603
2018062606
2018062609
201806*27*12
201806*27*15
201806*27*18
201806*27*21
2018062700
2018062703
2018062706
2018062709
201806*28*12
201806*28*15
201806*28*18
201806*28*21
2018062800
Como faço para que operações com o date não arredonde o resultado?
Obrigado
Loading...