###################################################################
# CALCULO DEL DIA ANTERIOR DE LA FECHA DEL SISTEMA O DE PARAMETRO #
###################################################################
if [ ${xrutina} = fanterior ] ; then
xfparam=$2
xnveces=$3
if [ ${xfparam} ] ; then
xfechoy=${xfparam}
else
xfechoy=`date +%Y%m%d`
fi
if ! [ ${xnveces} ] ; then
xnveces=1
fi
xstatus=`echo ${xfechoy} | awk -f ${DWH_LIB}/_validfecha`
if [ "${xstatus}" = "OK" ] ; then
xcntdor=1
while [ ${xcntdor} -le ${xnveces} ] ; do
xfecant=`echo ${xfechoy} | awk '
{ a=substr($1,1,4); m=substr($1,5,2); d=substr($1,7,2);
an=a+0; mn=m+0; dn=d+0;
if (dn==1 && (mn==5 || mn==7 || mn==10 || mn==12))
{ d2n=30; m2n=mn-1; a2n=an; }
if (dn==1 && mn==1)
{ d2n=31; m2n=12; a2n=an-1; }
if (dn==1 && (mn==2 || mn==4 || mn==6 || mn==8 || mn==9 || mn==11))
{ d2n=31; m2n=mn-1; a2n=an; }
if (dn==1 && mn==3 && an/4==int(an/4))
{ d2n=29; m2n=mn-1; a2n=an; }
if (dn==1 && mn==3 && an/4!=int(an/4))
{ d2n=28; m2n=mn-1; a2n=an; }
if (dn>1)
{ d2n=dn-1; m2n=mn; a2n=an; }
canio_a=sprintf("%04d", a2n ""); cmes_a=sprintf("%02d", m2n ""); cdia_a=sprintf("%02d", d2n "");
print canio_a cmes_a cdia_a
}'`
xfechoy=${xfecant}
let xcntdor=${xcntdor}+1
done
echo ${xfecant}
else
echo "ERROR"
fi
fi
fi
No hay comentarios:
Publicar un comentario