Getting a husband to go to the doctor when he will not even discuss his moods, or tell you if anything is worrying him, is likely to be a thankless and quite impossible task.
You can and should try to persuade him to do so, especially if these moods are a relatively new thing.
Has he recently retired? This kind of behaviour is very, very common indeed in newly-retired people, especially men.
Have you a close friend, or adult children, or nieces and nephews, who know your husband you can discuss things with?
Have you told your husband frankly that his moods are ruining things for you?
Even if Christmas does not mean a lot to him ( a guess on my part) he should be aware by now that he is spoiling it for you, and how selfish that is.
So tell him, you need him either to snap out of this moodiness or at the very least tell you what is bothering him.
If this goes on, it will not only be Christmas he spoils, but your marriage as well.
By all means follow others' advice about finding independant activities for yourself in the new year, but doing so can be hard, depending on where you live, and make your husband even moodier. Telling him straitly that you find his behaviour selfish and childish is not likely to go down well either, but if things are to change for the better, you might just want to give it a go.