Correct option is B
The correct phrase is "for a rainy day", which means to save something, especially money, for a time when it might be needed unexpectedly.
Examples:
It's always wise to keep some money aside for a rainy day.
He invested in a savings account to ensure he had funds for a rainy day.
Other options:
"For a cold day" is not a common phrase and doesn't convey the same meaning.
"For a sunny day" and "for a hot day" also do not match the idiomatic expression's meaning.