Membership with a set date not days

So this is my problem:

I want to have a membership that starts at a specific date each month. Actually it shoud start twice each month but... Can it be done without me having to bend some code to much? That also means that the payment can be done before the membership actually starts.

There should also be the usual kind of membership.

All thoughts are welcome.