Thank you for putting up your problem to Healthcare Magic!
You are under stress
& having anxiety
That can delay period.
For confirmation get blood beta HCG
test done if that come negative means you are not pregnant.
As you are gaining weight, have headache & loss of appetite get your thyroid
profile & random blood sugar test done.
I hope you will find out cause of these problems.