Custom Function Needed to Duplicate Deal

Custom Function Needed to Duplicate Deal

I would like to create an automatic workflow that automatically duplicates deals when the following conditions are met (these conditions can be conditions of the automated workflow) :
1) Deal stage = 100% closed won
2) Program = Managed Services

When these conditions are met I would like multiple new deals created. The number of new deals created would be equal to:

'Total Number of Weeks' / 4

For example if the 'Total Number of Weeks' field was 8, then 2 new deals would be created. (8/4=2)

(This could be a hidden formula field if need be.)

The 'deal signed' date for the first created deal would be +4 weeks from the cloned deal.
For example if the original deal has a 'deal signed' of 1/1/2019, then the first deal cloned would have a 'deal signed' date of +4 weeks later, and the second 'deal signed' date of +8 weeks later.

The largest 'Total Number of Weeks' would be 52 which would equal a total of 13 deals, or 12 clones of the original.