There are many possible reasons for having a late period. I would first want to know whether you have a history of having irregular periods, or whether this is a new problem for you, as this might help your doctor
to sort out whether this is a new problem or not.
One of the most common causes of irregular and heavy periods is polycystic ovarian syndrome. This is a condition in which imbalances in hormone levels in the body make it so that ovulation (release of the egg from the ovary) does not occur reliably. These leads to variation in the timing of the periods. Also, because months when ovulation does not occur do not lead to menstruation, the uterine lining builds up so that, when menstruation does happen, it can be prolonged or heavy.
Other potential causes of irregular periods can include problems with your thyroid gland. Another possibility is that you were briefly pregnant but miscarried (this would explain the 3 week delay); after a miscarriage, periods can be irregular for a while.
You should set up a visit with your OB GYN doctor to discuss your symptoms; they will be able to determine whether further workup is needed.