Shell script para calculo de datas

1. Shell script para calculo de datas

jose bassualdo
bassualdo

(usa Debian)

Enviado em 11/04/2012 - 23:57h

Buenas galera, tô com um problema para resolver na faculdade que é o seguinte:

Todos os semestres a coordenação do curso exige que o professor repasse a ela
os dias em que serão utilizados o laboratório. Essas datas baseiam-se nos dias
da semana em que são ministradas as aulas. Como nossa disciplina exige uso
intensivo do laboratório, o professor repassa à coordenação todas as datas
do semestre letivo em que são ministradas as aulas, para que possamos usar
o laboratório 100% do tempo disponível. Esse é um processo trabalhoso,
que envolve a busca dessas informações em um calendário e a transcrição
das datas para um e-mail que é enviado à coordenação. Para minimizar esse
problema, o professor quer que vocês desenvolvam um script que, a partir da
informação dos dias da semana em que há aulas, produza todas as respectivas
datas do ano em que serão ministradas nossas aulas.

Exemplo:
aulas.sh 2011/02/07 2011/07/05 1,3
11/02/2011, 13/02/2011, 18/02/2011, 20/02/2011, 25/02/2011, 27/02/2011, 03/03/2011,

Esse é o problema, comecei a fazer algo mas empaquei. Será que alguém me dá uma dica?


#!/bin/bash

echo "Digite a data da 1a aula no formato (2012-04-10): "
read data1
echo "Digite a data final no mesmo formato: "
read data2

# Agora vem o problema, não consigo passar os argumentos da data1 e data2 para executar a comparação no while

while [ $data1 < $data2 ]
do

day=`date --date=$data1 +%u` #aqui eu transformo a data1 em numeros dos dias que vao de 1 a 7

if (day =1 or day=3) # se day for = a 1 ou 3 imprime a data no formato 2012-04-10
echo " $data1 "
fi

data1=`date -d '1 day'` # Aqui é o contador da variavel data1 que vai incrementando de 1 em 1
done


Será que faz sentido e que tem como botar pra funcionar? Eu sou iniciante no linux, consegui desenvolver uma lógica mas não consigo executar.


  


2. Re: Shell script para calculo de datas

Gilberto Pereira dos Anjos Lima
gilbertoalima

(usa Red Hat)

Enviado em 12/04/2012 - 00:47h



Ou voce passa as datas como parametros e então terá para cada parametro o valor de $1 $2 e assim por diante,

Ou então voce pega pelo read, na condição utilizara $data1 e data2.

Para ambos os casos, recomando utilizar o IF ao inves do while.

Ainda estou meio confuso em tentar te entender, mas esta querendo imprimir todas as datas do ano, inclusive Jan,Jun e Dez exceto finais de semana ? ou então em que esta se baseando para o script saber que um dia x é um dia de aula ?

Att




3. Re: Shell script para calculo de datas

jose bassualdo
bassualdo

(usa Debian)

Enviado em 12/04/2012 - 14:46h

Na verdade o script teria que rodar assim:

Exemplo:

passando os parametros de data1 data 2 na linha de comando

#./aulas.sh 2011/02/07 2011/07/05

e retornar como saída as datas nesse formato. que seriam as datas referentes a todas as 2ª e 4ª feiras que existem entre o periodo compreendido entre data1 e data2

11/02/2011, 13/02/2011, 18/02/2011, 20/02/2011, 25/02/2011, 27/02/2011, 03/03/2011,



Vou ver se consigo evoluir alguma coisa com a sua dica. valeu!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts