How long have you … ? とは「どれくらい~している?」「~して何年?」という意味です。期間を聞く時に使えるパターンです。How long (どれくらいの時間) は次の三つのパターンでよく使われます。
- How long have you (過去分詞)?
どれくらい~している? - How long have you been (動名詞)?
どれくらい~している? - How long did you (動詞の原形)?
どれくらい~したの?
まずは、How long have you … ? と How long have you been … ? の使い方をお伝えします。
How long have you (been) … ? (どれくらい~している?)
完了形の How long have you … ? と How long have you been … ? は「どれくらい~している?」「~して何年?」を意味します。意味は同じですけど、時制と使い方は少し違いますね。How long have you (過去分詞)? は 現在完了形 であり、現在完了形は「完了した活動の結果」を表す時制です。How long have you been (動名詞)? とは 現在完了進行形 であり、現在完了進行形は「継続している活動の期間」を表す時制です。時制のニュアンスはすこし違いますが、実際には、この二つの表現は同じ意味で使われます。現在まで継続している活動を表すために使われます。
Example 1
How long have you lived in Tokyo? (現在完了)
東京に住んで何年ですか?
How long have you been living in Tokyo? (現在完了進行)
東京に住んで何年ですか?Example 2
How long has he worked here? (現在完了)
彼はここで働かれてどの位になるのですか?
How long has he been working here? (現在完了進行)
彼はここで働かれてどの位になるのですか?Example 3
How long have you studied English? (現在完了)
何年くらい英語を勉強していますか?
How long have you been studying English? (現在完了進行)
何年くらい英語を勉強していますか?
次は答え方を教えします。How long have you (過去分詞)? に答える時は、I have (過去分詞) の形で答えることができて、 How long have you been (動名詞)? などの質問に答える時は I have been (動名詞) というパターンを使うことができます。been は be 動詞の過去分詞ですから、形容詞、名詞、動名詞と過去分詞などと一緒に使うことができます。
Example 1
How long have you been in Japan?
あなたはどのぐらい日本に滞在していますか?
I have been in Japan for 10 years.
私は10年間日本にいます。Example 2
How long have you been married?
あなたはどのぐらいの期間結婚していますか?
We have been married since April.
私たちは4月から結婚しています。Example 3
How long have you been studying Japanese?
どれぐらい日本語を勉強していますか?
I have been studying for 1 year.
私は1年間日本語を勉強しています。
How long did you … ?
How long have you (been) …?は完了形の疑問文でしょう?簡単に説明すると、現在完了形は「完了した活動の結果」を表し、現在完了進行形は「今まで継続している活動」を表します。しかし、How long did you … ? とは 単純過去形 ですから「過去に始まって、過去に終わった活動」を表すために使われます。ですから、How long did you (動詞の原形) ? は「何年間~したのですか?」「どれぐらい~したのですか?」という意味になります。もう終わった活動を表すために使われます。違いをお見せします。
- How long did you live here?
ここにどのくらいの期間住んだのですか
単純過去形の疑問文ですね。「今はもう住んでいない」という意味を持っています。
- How long have you lived here?
ここにどのくらいの期間住んでいるのですか
現在完了形の疑問文ですね。「今もここに住み続けている」という意味を持っています。単純過去形の疑問文に答える時は、単純過去形を使います。また、How long were you … ? は 名詞・動名詞・過去分詞・形容詞 と一緒に使うことができます。
Example 1
How long did you work at that company?
何年間その会社で働いたのですか?
I worked there for 3 years.
3年間働きました。Example 2
How long did you wait?
どれくらい待った?
I waited for about 5 minutes.
5分ぐらい待った。Example 3
How long did you sleep for last night?
昨夜は何時間寝たのですか?
I slept for about 5 hours.
5時間ほど寝ました。Example 4
How long did it take?
どのくらいかかったのですか?
It took about 2 hours.
2時間ぐらいかかりました。