Seems that the problem source is not in the script but in the behavior. Since we want to delete old backups greater than n*24 hours we have to use "+" option in the script. The reason about it works like "n+2" has to be searched in the behavior, when i have to delete backup files older than n*24 hours i usually consider time in a continuos way, so if i set 'n' to 1 i should delete all files older than n*24 starting from the time when backup starts, so if backup is starting at 1 am i should delete all backups modified before yesterday at 1 am, in this case i'll keep yesterday set because files was created after 1 am but, with continuos time, i have to delete the day before yesterday set for the same reason. But script doesn't work like this.
In my opinion we have to consider time in a discrete way, let us think about time blocks of 24 hours each, in this case we should delete all backup sets whose creation time is not included in the 1st,2nd,3rd,...'n'th block. So with only 1 set we have to consider 1 block, let me enumerate blocks starting from 0. The 0 block starting from 1am yesterday to 1 am today, the 1st and then the last block of my sets starting from 1 am the day before yesterday to 1 am yesterday, because n=1 the script keeps a total of 3 backup sets corresponding to: 1)today backup, 2)backup belonging to the 0 block 3)backup belonging to the 1st block.
Imho, this is the reason cause script works in a "strange" way keeping 'n+2' instead of 'n' backup sets.
