# Desde el lunes hasta domingo de la semana anterior
Dia_Ini=`date +%d`;
Mes_Ini=`date +%m`;
Anyo_Ini=`date +%Y`;
Dia_Semana=`date +%w`;
case $Dia_Semana in
1) Dia_Ini=`expr $Dia_Ini - 7`;;
2) Dia_Ini=`expr $Dia_Ini - 8`;;
3) Dia_Ini=`expr $Dia_Ini - 9`;;
4) Dia_Ini=`expr $Dia_Ini - 10`;;
5) Dia_Ini=`expr $Dia_Ini - 11`;;
6) Dia_Ini=`expr $Dia_Ini - 12`;;
7) Dia_Ini=`expr $Dia_Ini - 13`;;
esac;
if [ $Dia_Ini -le 0 ]
then
if [ $Mes_Ini -gt 1 ]
then
Mes_Ini=`expr $Mes_Ini - 1`;
else
Mes_Ini=12;
Anyo_Ini=`expr $Anyo_Ini - 1`;
fi;
fi;
# Calcular final de mes: Dia_Fin_Mes
case $Mes_Ini in
01) Dia_Fin_Mes=31;;
03) Dia_Fin_Mes=31;;
04) Dia_Fin_Mes=30;;
05) Dia_Fin_Mes=31;;
06) Dia_Fin_Mes=30;;
07) Dia_Fin_Mes=31;;
08) Dia_Fin_Mes=31;;
09) Dia_Fin_Mes=30;;
10) Dia_Fin_Mes=31;;
11) Dia_Fin_Mes=30;;
12) Dia_Fin_Mes=31;;
esac;
# Tratamiento especial para el mes de Febrero
# (Multiplo de 4 y no multiplo de 100) o multiplo de 400
if [ $Mes_Ini = 02 ]
then
Bisiesto=`expr $Anyo_Ini % 4`;
if [ $Bisiesto = 0 ]
then
# Multiplo de 4
Bisiesto=`expr $Anyo_Ini % 100`
if [ $Bisiesto = 0 ]
then
# Multiplo de 4 y multiplo de 100
Bisiesto = `expr Bisiesto % 400`
if [ $Bisiesto = 0 ]
then
# Multiplo de 400
Dia_Fin_Mes=29;
else
Dia_Fin_Mes=28;
fi;
else
# Multiplo de 4 y no multiplo de 100
Dia_Fin_Mes=29;
fi;
else
Dia_Fin_Mes=28;
fi;
fi
if [ $Dia_Ini -le 0 ]
then
Dia_Ini=`expr $Dia_Fin_Mes + $Dia_Ini`;
fi;
Dia_Fin=`expr $Dia_Ini + 6`;
if [ $Dia_Fin -gt $Dia_Fin_Mes ]
then
Dia_Fin=`expr $Dia_Fin - $Dia_Fin_Mes`;
if [ $Mes_Ini = 12 ]
then
Mes_Fin=01;
Anyo_Fin=`expr $Anyo_Ini + 1`;
else
Mes_Fin=`expr $Mes_Ini + 1`;
Anyo_Fin=$Anyo_Ini;
fi;
else
Mes_Fin=$Mes_Ini;
Anyo_Fin=$Anyo_Ini;
fi;
echo "FECHA INICIO: $Dia_Ini/$Mes_Ini/$Anyo_Ini"
echo "FECHA FIN : $Dia_Fin/$Mes_Fin/$Anyo_Fin"