Delete it self while execution? You can't.
You could somehow on the application save the date of when it was first started, one month after that date (always checking when the app starts) you shut it by it self until the date is changed. (which the patch could do for example).
This is an example. Theres a couple of solutions. But deleting itself while execution is not one.
And no im not giving code.