I do the exact same thing you do...sleeping until 4pm and not being able to sleep until 7 or 8 in the morning. My sleep gets that way if I don't have to wake up early.
Since classes started, my sleep habits have been a little better but I still sleep until 3 pm on the weekends. I'm not depressed or anything, I think that's just how my body's clock is set up.
Even when I have to get up at 7am, I usually cannot fall asleep until at least 1 am. If I don't have to get up I could easily sleep until 3 pm.
To solve my problem I need to wake up early everyday. Going to bed early doesn't help because no matter how tired I am, I just cannot sleep at an earlier time. I have to force myself to get up early instead. That makes me tired enough to sleep at around 1 am instead of 4 am.
__________________
|