Why does 日 make different sounds??
Those are cases of words that existed in Japanese before kanji were introduced and then had kanji assigned to them purely for their meaning. 日 is not making different sounds there, it’s just part of a larger exceptional reading that doesn’t apply to the individual kanji that make up the words.
Readings of these words also exist that use the onyomi, but they tend to have a more formal feeling to them. For instance, さくじつ instead of きのう. Or みょうにち instead of あした.
That’s neat. Is there a list of kanji that have exceptional reading? Would the formal readings have any practical use?
I’m not sure if there’s an exhaustive list, or something like that. Someone else might be able to answer that.
The formal readings are good to know if you’re listening to announcements in a business environment. In the case of saying “today,” though, you’re more likely to see 本日, ほんじつ, (note that it’s the reverse of 日本’s kanji, easy to mistake when reading). So, if you don’t know the formal ones, you might be thrown off in listening comprehension.
I would trust Kanji Damage about as far as you can through it. After two seconds of looking at that list I found 紅葉, which is a perfectly normal reading, and 誕生日 which really isn’t that exceptional, a list of mixed Onyomi and Kunyomi readings would be massive, but this one is easily explainable as it is really simply two words shoved into one.
Anyway, useless information coming:
きょう was originally けふ, this is the same け that exists in 今朝/けさ which is the same as こ（此) but any more than that is unclear to me. ふ which either meant or turned into ひ/日 it’s not entirely clear there.
The list doesn’t specify what reading is exceptional. こうよう is normal, but I’m pretty sure もみじ is the exceptional one.
Oh good point. Well, that is even more reason, since the other is definitely more common, and more broad.