Software Design

Design de software em C, C++, Java, etc…

Shell Script: Cálculo de datas

Com alguns truques é possível utilizar o comando date para fazer cálculo de datas de maneira bem simples.

#!/bin/bash

add_seconds()
{
    seconds=$(date -u --date="${1}" +"%s") # 1
    seconds=$(($seconds + ${2})); # 2
    seconds=$(date -u --date="@$seconds" +"%F %T") # 3
    echo $seconds
}

DATA_TESTE="2013-12-31 00:30:00";
add_seconds "$DATA_TESTE" -3600
add_seconds "$DATA_TESTE" 3600
add_seconds "$DATA_TESTE" $((4 * 24 * 60 * 60))

Ao executar esse script obtemos:

2013-12-30 23:30:00
2013-12-31 01:30:00
2014-01-04 00:30:00

Explicando:

  1. date -u –date=”${1}” +”%s”: este comando converte a data ( parâmetro ${1} ) na data no padrão C ( número de segundos à partir de 01/01/1970 00:00:00 ).
  2. $(($seconds + ${2}))Adiciona ${2} segundos
  3. $(date -u –date=”@$seconds” +”%F %T”)Converte a variável $seconds de volta para o formato de data legível

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Informação

Publicado às outubro 25, 2013 por em Linux, Unix e marcado , , .
%d blogueiros gostam disto: