My 3.5 year old (he'll be four in July) has recently started a NASTY whining/crying/tantrum streak. Mostly, it's centered on bedtime and brushing teeth, but there are a whole host of other things also ("But I don't want to go to school today!" "But I don't want to go to the grocery store." "But I want to wear shorts!" (and it's 12 degrees outside). It's gotten so bad that outside of bedtime, every time he whines or cries or starts to throw a temper tantrum, we tell him we know he's upset, and it's ok to be upset, but that he can't ruin everyone else's day/morning. We send him to his room and tell him he can come out when he's ready.
Other times -- mostly when we're out -- we tell him that we understand he's upset but that he just can't do what he wants to do because of X, Y and Z. We give until the count of three or five to stop the crying/whining or we'll sit in the car. Example: At the grocery store today, he wanted to push his own cart instead of sit in the carts with the steering wheel. We had 35 minutes to get through the grocery store and I knew he'd be all over and tipping his car (accidentally) and getting in peoples' way, so we said no. He cried for about 30 seconds and would have continued, but I did the "I'll give you to five..." and it worked.
I know these aren't the best methods -- and I know a lot of it is that I need to slow down, give him a little more attention, and say yes more. But I'd love your thoughts. What do you do?? Just letting him cry usually means a 45-minute tear session.