This code gist has been built into a full fledged plugin that is available now on GitHub. Using this plugin as is will add an additional field to the edit level and edit discount code pages allowing you to set a specific expiration date. So instead of “expire in 30 days” you can set the level to “expire on 2015-01-01”.

The symbols Y and Y2 can be swapped in to represent the current year and next year respectively. So to expire on January 1st next year, use: Y2-01-01

The symbols M and M2 can be swapped in to represent the current month and next month respectively. So to expire on the 1st of the next month, use: Y-M2-01

Viewing this code on GitHub may also give you insight into writing custom rules for expiration dates.