I was a little bored today, so I wrote this script to do julian - 365. I did no checking so if you put in a number that puts you back 2 years, you can modify it to work properly.integer today=$(date +%j)
print "Enter the number of days to subtract: \c"
read daysToDelete
currentYear=$(date +%Y)
newJulian=$(print "$today - $daysToDelete" | bc )
echo $newJulian
for days in $(cal 2 $lastYear)
do
:
done
if [[ $newJulian -le 0 ]]
then
print "We're working with a date from last year"
(( lastYear = currentYear - 1 ))
if [[ $days -eq 29 ]]
then
print "Last year was a leap year"
julianDate=$(echo "366 $newJulian" | bc )
leapYear=1
year=$lastYear
else
print "Last year was a not a leap year"
julianDate=$(echo "365 + $newJulian" | bc )
year=$lastYear
fi
else
julianDate=$newJulian
year=$currentYear
fi
typeset -R2 year
if [[ $julianDate -eq 0 ]]
then
print "Date is $year/12/31"
exit 0
fi
if [[ $julianDate -le 31 ]]
then
print "Date is $year/01/$julianDate"
exit 0
fi
(( julianDate -= 31 ))
if [[ $leapYear -eq 1 && $julianDate -le 29 ]]
then
print "Date is $year/02/$julianDate"
exit 0
elif [[ $julianDate -le 28 ]]
then
print "Date is $year/02/$julianDate"
exit 0
fi
if [[ $leapYear -eq 1 ]]
then
(( julianDate -= 29 ))
else
(( julianDate -= 28 ))
fi
if [[ $julianDate -le 31 ]]
then
print "Date is $year/03/$julianDate"
exit 0
fi
(( julianDate -= 31 ))
if [[ $julianDate -le 30 ]]
then
print "Date is $year/04/$julianDate"
exit 0
fi
(( julianDate -= 30 ))
if [[ $julianDate -le 31 ]]
then
print "Date is $year/05/$julianDate"
exit 0
fi
(( julianDate -= 31 ))
if [[ $julianDate -le 30 ]]
then
print "Date is $year/06/$julianDate"
exit 0
fi
(( julianDate -= 30 ))
if [[ $julianDate -le 31 ]]
then
print "Date is $year/07/$julianDate"
exit 0
fi
(( julianDate -= 31 ))
if [[ $julianDate -le 31 ]]
then
print "Date is $year/08/$julianDate"
exit 0
fi
(( julianDate -= 31 ))
if [[ $julianDate -le 30 ]]
then
print "Date is $year/09/$julianDate"
exit 0
fi
(( julianDate -= 30 ))
if [[ $julianDate -le 31 ]]
then
print "Date is $year/10/$julianDate"
exit 0
fi
(( julianDate -= 31 ))
if [[ $julianDate -le 30 ]]
then
print "Date is $year/11/$julianDate"
exit 0
fi
(( julianDate -= 30 ))
print "Date is $year/12/$julianDate"
$