Compute 3 New Date Fields
You could use something like Computed Field for this or you can write your own custom module. You could hook into node save using hook_node_presave (since it acts on save and presave) and calculate the other 3 fields that you need to save. Either way should work pretty well. You would just use php date functions to calculate the new dates either way. There are a bunch of examples for computed field online and in their documentation you could use to draw inspiration from.