"He has done very well overnight." - Does it mean that the night has
just finished and he did very well overnight?
"I have done two long days at work" - Does it mean that i have just
finished work and i did two days there
This construct (both examples) can also express that the event has happened before at some point in the past, in general, or under certain circumstances.
He has done very well overnight when the weather is warm, so he will be content when summer finally arrives
Meaning: In general, under the specified circumstances, he has done very well. This may have occurred months ago, during the previous summer
I have done two long days at work, but the job remains incomplete. I will need to return tomorrow to finish the job.
In this case, saying "have done" instead of "did" two long days, reflects that the event has not entirely concluded, even though the two long days may have taken place a week ago. This usage is similar to the example from your next question.
It has been very hot today - Does it mean that the day has just
finished and it was very hot, or the day hasn't finished yet, or it is
very hot during the whole day and it is still hot
Any of these could be correct, because the event referred to may be the heat of the day (as measured by a thermometer), the sensation of feeling hot, or a state/activity which resulted in feeling hot. Possibilities include: the day just ended and it was hot (the temperature was high); the day has just ended and it felt hot (because the temperature was high); the state/activity (e.g., working in the sun) has just ended, and it was hot (performing the activity resulting in feeling hot). A change in state/activity may occur before, during, or after the end of the day. Thus, it is possible that the the temperature was high during the day and is still high now, but the subject no longer feels hot because the activity has ended.
My current understanding is that i can use present perfect this way: 1.
I have been on a holiday in the last year - I was in a holiday in
September 2 I have been on a holiday for two weeks - I am still on a
holiday 3 I have been on a holiday for two weeks and i look fantastic. - I have just returned
That is correct.
Can i say "i have been better lately" does it meen that i have been
doing better lately in comparison with " I have been better"?
These phrases can have different meanings:
I have been better lately: I was not feeling/doing well previously, but now I am feeling/doing well. I started feeling/doing better some time in the recent past, and this has continued to the present.
I have been better: The meaning depends on context and vocal inflection, because, without further information, the timing of events is ambiguous. The intended meaning could be that I am feeling/doing better now than in the past (i.e., I have been better lately), or that I have felt/done better in the past than in the present (i.e., I am feeling/doing not at all well right now).