mercredi 28 février 2018

Generate specific date in bash

Hi I have written down some bash to generate the date in format YYYYDDMM.

I know that is not perfect but the final thing will be:

Generate a range of 2 dates that are 31 days apart from each other and start with a minimum of today + one day and the older ones end at the end of this year. In format YYYYMMDD

month="$(awk -v min=1 -v max=12 'BEGIN{srand(); print int(min+rand()*(max-min+1))}')"
day="$(awk -v min=1 -v max=31 'BEGIN{srand(); print int(min+rand()*(max-min+1))}')"
year="$(date +%Y)"



if (( "${month}" < 10 )); then
    month_proper="$(echo 0"${month}")"
else
month_proper="$(echo "${month}")"
fi
if (( "${day}" < 10 )); then
    day_proper="$(echo 0"${day}")"

else
day_proper="$(echo "${day}")"
fi



echo month "${month}"
echo month with 0 if smaller than 10 : "${month_proper}"
echo day "${day}"
echo day with 0 smaller than 10 : "${day_proper}"

ok="$(date -d ""$year""${month_proper}""${day_proper}"" +"%Y%m%d")"
echo date with proper format "${ok}"
date -d "$year""${month_proper}""${day_proper}"

In which direction would I have to expand this script to get the final result? I already have the date generation, but there is no checking if there is one day ahead of today.




Aucun commentaire:

Enregistrer un commentaire