I learned a long time ago that when someone doesn´t show up or come home when they said they would... to go ahead and get on with my life. I´ll call a friend and head out for dinner or maybe a drink... when they come home to an empty house it´s a bit of a shock, when you come home and give them a kiss and say "did you have a good night" they´re gobsmacked!
When you sit home getting angry, they get home only to have you shout at them or mope or whine and they immediatley think they should have just stayed at the bar...when they come home to an empty house followed by a kiss and a cheery attitude they´re much more inclined to come home in the future.