A husband and wife should be committed to meeting each other's needs. Oftentimes in a marriage, a spouse only gives what they want to give and not what they're supposed to give. Your spouse has needs that you are obligated to meet.
I knew a man who was often angry with his wife because she would do nice things for him, but not what he had asked her to do. The man had asked his wife over and over for years to keep the house clean. She just refused to keep it clean. She kept telling him it would be clean, but she rarely cleaned it. When she baked him a nice cake one day, he thanked her, but reminded her that she had not cleaned the house in quite some time. She became angry with him. And by the way, she was totally wrong to do so. She should have cleaned the house which she had agreed to clean. Her job was being a "homemaker," but she didn't want to make her home.
Doing something nice for your spouse cannot make up for something you were supposed to do.
The same woman I just mentioned went out of her way to surprise her husband on his birthday. She sent out self-addressed and stamped birthday-cards to famous people. She requested for them to sign and mail back the cards, and they kindly did. It was indeed a nice surprise, but again her husband wasn't happy because she had failed to wrap food in the refrigerator, failed to keep the bathroom clean, failed to replace her empty toilet paper roll, failed to clean the yard, failed to do the dishes, et cetera.
Once she didn't rinse the glasses good enough and her husband drank a soda mixed with Ajax bubbles. She had failed to perform her responsibilities, she was lackadaisical about her job. She liked to do the things which she wanted to do for her husband, but not the things that he asked and needed her to do. Her husband told her that he appreciated the birthday cards, but then reminded her that she still had not cleaned the house. Of course, she was unjustly angry again at him.