He has been ill for ten days.
He was ill for ten days.
这两个句子用的时态不同,所以涵义也就不同。
现在完成时表示某事发生或开始于过去某一时间,但其结果或影响到说话时依然存在。
第二句用的是一般过去时,它表示过去发生的某一件事,不管此事和现在是否还有联系。
因此,He has been ill for ten days的涵义是“他已病了十天,但现在病尚未好”;He was ill for ten days的涵义是“他(曾)病了十天(一般来说指现在病已痊愈,但也可能病尚未完全好)”。
与之类似区别的语句很多。例如:
He has lived in Hong Kong for ten years.
他在香港已住了十年(现在还住在香潜)。
He lived in Hong King for ten years.
他曾在香港住过十年(现已不住在那里了)。
I saw her once only.
我(在某时某地)只见过她一次面。
I have seen her once only.
(从出生到现在)我只见过她一次面。