~年/月/日/時間・前を意味する"ago"と"before"

・"ago"は現在完了と一緒に使うことはできない。
・「~年/月/日/時間前」を"…years/months/days/hours ago"や"…years/months/days/hours before"のように言うことはできるが、"before … years/months/days/hours"のように言うことはできない。

[誤]I have met him 5 years ago.
[誤]I have met him 5 years before.
[正]I have met him somewhere before.
[正]I met him somewhere before.
[正]I met him 5 years ago.
[希]I met him 5 years before.
[正]I had met him 5 years ago.
[正]I had met him 5 years before.
[誤]I had met him before 5 years.

・"ago"は現時点から数えて「~年/月/日/時間前」と言うときに使われるが、"before"は、現時点以外の時点からから数えて「~年/月/日/時間前」と言うときに使われる。

【例】私達は今から2年前に泊まったホテルに行った。
[誤]We went to the same hotel where we had stayed two years before.
[正]We went to the same hotel where we had stayed two years ago.

【例】彼は2年前にそのホテルに泊まったと言った。
[正]He said, "I stayed at the hotel two years ago."
[誤]He told me that he stayed at the hotel two years ago.
[正]He told me that he stayed at the hotel two years before.

・上記[誤]の文は、英文としては正しいが[正]の文とは意味が異なる。
・[正]の文は「彼が言った時点から2年前」を表すのに対し、[誤]の文は、「この文が書かれた時点、あるいは、言われた時点から2年前」を意味する。仮に、これらの文が1年前に言われたとすると、[正]の文は3年前に泊まったことを意味するが、[誤]の文は2年前に泊まったことを意味する。

~年/月/日/時間・前を意味する"ago"と"before"の関連項目