Hi Agnieszka
In fact both are grammatically correct. You have a point about question 2 because technically you are talking about past events connected to the present. And a good day could change at any moment and become a bad day at any point before that day is finished...so stating "it is a good day" as a fact that can't change is a bit wrong. Saying "it has been a good day" (so far) is more accurate.
However, it's worth noting that people do use the present tense to talk about this type of thing - and they don't really think too much about the possibility that things might change. Often people decide to say "it has been a good day" to do one of two things: 1. signal/imply that they are in a good mood now because of things that happened in the past or 2. to suggest that things are about to change
Hope this helps
Chris