Why could my cycle only have been 16 days?

Demi • 22 years old. TTC#1!! ❤💙💚💛💜
I would have been CD18 today but af is here. She showed yesterday with spotting and cramps leading into a flow towards bedtime so I've put CD1 as yesterday. My last cycle was normal 31 day cycle, period was normal with normal cramps and tender boobs. This one has bad pain and no tender breasts. I should have been ovulating around now. So annoying. :( why could this have happened? And how can I prevent this happening next cycle? Is it possible I ovulated on my period?