We need more specificity — is your field a date type?
If the date that you have is a date type then I think this will work.
If you have a date in a char or numeric field then it needs more work.
Make a test file and try this. It should update all records in MyFile reducing MyDate
Set MyDate = MyDate – 1 YEAR – 1 MONTH;
It should reduce the date by 1 year and to the same date one month before .. if the date exceeds the number in the month then the last day of the month.