This is a tricky blighter, heres my answer
part a part b part c
part d
=INT((1+G23-G22)/7)+
IF(WEEKDAY(1+G23-7*INT((G23-G22)/7))<=MOD((1+G23-G22),7),1,0)
g23 is end date, g22 is old date
Explanation
part a works out the number of whole weeks in the date range, they are
assumed to be inclusive dates which is why I add 1
part c finds out, working backwards from the end date the number of whole
weeks we found a, what day of the week we get to.
Part d establishes how many days we had left over in part a
Part b, the if, compares the day of the week we worked back to against the
number of days left over to see if we can include another saturday
QED