With harmless causes, the pain is most often better or gone in 2 hours. With stomach flu, belly cramps may happen before each bout of vomiting or diarrhea. These cramps may come and go for a few days.