Is my period too long?

Usually my period lasts 7 days or longer. It's really annoying. I also bleed really heavy at the beginning and have very very bad cramps. I'm not bleeding heavy towards the end, and it's really light, but I hate having to put things off because of it and wear pads for that long. Do you think birth control could lower the length of my period? If not, what else could I do?