The first '+' means add days to the date specified. The second '+' introduces the output format specifier of the
date command. I don't know why they chose to write
date to work that way instead of just making the output format a switch argument like the others, but it is what it is. Both are arguments to
date and have nothing to do with
printf.
Here's a broken down example that might help you understand what's going on.
Code:
basedate="2007-09-01 17:30:24.000000000 UTC"
days=200
display_date=$(date -d "$basedate + $days days" '+%Y %d %B')
printf 'In %s, %s %s\n' $display_date
Your days calculation made no sense, so I replaced it with '200', and I removed the hardcoded year in your printf format string and replaced it with an additional output field from date, for reasons that should be obvious.
P.S. Odd choice of basedate, but whatever rocks your boat.