have p.p.とhave been -ingの違いは?

ところでいきなりですが、

I have written blogs for two hours.

I have been writing blogs for two hours.

どちらが正しい表現かわかるでしょうか?
(受験生向けの問題です)

「私は二時間ブログを書き続けている」
という意味は伝わると思います。

ただ英文としておかしくないのは
どちらでしょーか。

これぱっとわかって理由も正しく説明できる人は
今日の話は読まなくて大丈夫です。 (補足1

文法っぽくいうと上は現在完了で
下は現在完了進行形の文章と
わかる人もいると思います。 (補足2

have + p.p.と have + been + -ing は
どちらも「〜し続けている」という意味を含んだ
継続の表現で使います。

I have known him since last year.
「去年から彼を知っています。」
(去年からずっと彼を知っていることを続けています)

I have been studying English for two hours.
「二時間英語を勉強しています。」
(二時間ずっと英語を勉強し続けています)

どっちも「〜し続けている」って意味を
含んでいるんですね。

じゃあhave + p.p.と have + been+ -ing
この区別はどこでつくのかってのが
最初の問題です。


はい、じゃあ正解発表

I have written blogs for two hours.

I have been writing blogs for two hours.

この2つのうち正しい表現は、、、

I have been writing blogs for two hours.

です。


have + been + -ingが正しいんですね。

とゆーか、

本来なら継続の意味を含む表現って
ぜーんぶ have + been + -ingが正解です。

中学で習う現在完了は

「ちょうど〜したところだ」(完了)
「〜したことがある」(経験)
「ずっと〜し続けている」(継続)

の3つ。

I have just finished my homework.
「ちょうど宿題を終えたところだ。」(完了)

I have been to Kyoto.
「京都にいったことがある。」(経験)

I have been writing blog for two hours.
「二時間ブログを書いている。」(継続)

みたいな。


ちなみに現在完了の本質は

『過去もしてたし、現在もしてる』

という過去+現在の意味を表すときに
使う表現です。

そこから派生して

過去してたことがちょうど現在までしてた
→「ちょうど〜したところだ」(完了)

I have just finished my homework.
「ちょうど宿題を終えたところだ。」(完了)


過去したし、現在もしたことがある
→「〜したことがある」(経験)

I have been to Kyoto.
「京都にいったことがある。」(経験)


過去しいてたし、現在もしている
→「〜し続けている」(継続)

I have been writing blog for two hours.
「二時間ブログを書き続けている。」(継続)

と大きく3つの意味を表せるんですね。


ただこれら現在完了って全部
have + p.p.だって覚えてる人は
けっこう多いです。

下手すると中学の教師が
そうやって教えてたり。。。

私自身はこのとき授業を聞いていた
記憶すらないのですが
全部 have + p.p.だと覚えていました。

というよりhave + been + -ingが
存在していることすら知りませんでした。

ただ中学の教科書見直すと
はっきり書いてあるんですね。

継続は have + been + -ing だ

って。

んて補足として

進行形にできない動詞のときは
しゃーないのでhave + p.p.にする

って。

だから二種類ごちゃまぜに
なってるように見えてたんですね。

正しくは

I have been writing blogs for two hours.
   ↑writeは -ing にできる

I have been studying English since yesterday.
   ↑study は -ing にできる

I have known him since last year.
   ↑know はできないから仕方なく

というルールがあります。

んじゃ5回、
意味をイメージしながら

I have been writing blogs for two hours.

声に出してみてください。

ではでは


※補足

have p.p.で表す継続について
指摘があったので訂正しました。

(なお、受験には必要ない知識です。)

I have been writing blogs for two hours.

「私は二時間ブログを書き続けている」(継続)

に対して

I have written blogs for two years.

「私は二年間ブログを書き続けている」(習慣)

という表現があります。

どちらも似ていますが、進行形になる場合と
ならない場合があるってやつです。

前者の「二時間書いている」方は
今現在も書いているので進行形。

後者は(経験)と(継続)が混ざったような
表現になっています。

英会話などではこのニュアンスの違いが
大切になってきますが

中学生や高校生が受験で出会う
文法は前者のみです。

後者のパターンの問題は
まず出題されません。

英語の勉強は、あくまであなた自身の
役に立つ道具でしかないので

今の自分に合った知識を選んで
覚えるといいと思います



補足1


have + p.p.なので現在完了で
for two weeksという期間があるので
「〜し続けている」という表現。

ちなみにp.p.ってのはpast participleの略で
動詞の過去分詞形のことです。

過去分詞形とかの言葉はこのp.p.やらを
むりやり日本語に訳した言葉で、

おかげで高校時代に過去なの?現在なの?と
めちゃめちゃ誤解をさせられましたが

表面的な言葉に左右されるのではなく
本質を見れる人間になりましょうって
教訓ももらい感謝しています(ウソ


補足2


現在完了は
have + 動詞のp.p.

現在完了進行形は
現在完了 have + 動詞のp.p. と
現在進行形 be動詞 + -ing がくっついて
have + be動詞のp.p. + -ing.