I don't think it's practically feasible to do that type date arithmetic in shell commands. Try using perl or sililar. Example of date arithmetic.
#!/users/contrib/bin/perl
# Add or subtract days from the currect time
$days = $ARGV[0];
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
= localtime(time() + $days * 24 * 60 * 60);
$mon++; # Month is zero-based
$mon = (length($mon) < 2 ? "0" . $mon : $mon);
$mday = (length($mday) < 2 ? "0" . $mday : $mday);
$year = $year + 1900;
$hour = (length($hour) < 2 ? "0" . $hour : $hour);
$min = (length($min) < 2 ? "0" . $min : $min);
$sec = (length($sec) < 2 ? "0" . $sec : $sec);
$pm_date = "$mon/$mday/$year $hour:$min:$sec";
print "$pm_date\n";
dev>>date
Mon Dec 4 11:24:35 PST 2006
dev>>date_add.pl -10.5
11/23/2006 23:24:41