I'm trying to create something that takes the date that someone joined the military and calculates the next time they will receive a good conduct award.

Every three years from enlistment, the service member receives his good conduct award. So i need this thing to recognize the current date and know when the next time he will receive his good conduct award is.

Also, if someone receives Non Judicial Punishment, the date is recalculated to 3 years from that value instead of the ADSD (service entry date).

I am at a complete loss as to how to get the functions to mimic that calculation -- is there anyone that can please help me?