A grammar book that I've been using showed this sentence as incorrect.

I've read this book for two hours.

This sentence is apparently incorrect in present perfect. Why is this sentence wrong? If so then is this sentence also wrong?

I've cooked for two hours.

What is the rule for knowing what's right and what's wrong in this sentence structure?

Thanks for any help!

Edit: Grammar Sense 4, Page 5

  • The grammar book (or was it a website?) must have explained why that sentence is wrong. Please tell us the title of this book, the chapter, and what the grammar lesson was about. I can think of a more natural way of saying someone has cooked for two hours, but grammatically speaking, I don't see any "error".
    – Mari-Lou A
    Jun 9, 2018 at 0:46
  • It doesn't look wrong to me, at least not as something that people would say and have understood. Jun 9, 2018 at 2:55

1 Answer 1


Wikipedia explains that one use of the present perfect is to describe "actions started in the past and continuing in the present", with this example:

We have lived in Sapporo for eleven years.

That looks a lot like the sentence in your grammar book:

I have read this book for two hours.

But here's the problem: living is a relatively permanent thing, whereas reading and cooking are temporary activities. In other words, I can say "I have lived in Sapporo" while I am still living in Sapporo – even if I'm visiting you in Moscow. This boils down to the difference between stative verbs (such as live or know) and dynamic verbs (such as read and cook).

You can still use the present perfect with dynamic verbs, but you do this when you are talking about "an unspecified period between the past and now" or when "the precise time of the action is not important or not known". For example:

I have read this book three times.
I have cooked hot cross buns in my new oven.

Going back to your sentences, we can use the present perfect continuous, and say things like:

I have been reading this book for two hours.
I have been cooking since three o'clock.

  • "She's been living at her mum's for the last two weeks." "We've been hearing things about him for weeks" "We've been loving the Dolce & Gabbana line of purses since 2012" PPC can be used in stative verbs too.
    – Mari-Lou A
    Jun 9, 2018 at 9:43
  • @MariLou - Absolutely! You have been leaving helpful comments on ELL for several years now.
    – J.R.
    Jun 9, 2018 at 9:58
  • Thank you! That makes sense. Although I feel like I've seen the word "worked" used. Does "worked" work (lol) in a sentence like this? (e.g. I have worked in Sapporo)
    – Frost Zone
    Jun 9, 2018 at 18:02
  • The word work is one of those tricky verbs that can work both ways. For example, I can say: I have been working in the garden for two hours now (that’s dynamic), or I have been working at IBM since 2014 (that’s stative).
    – J.R.
    Jun 9, 2018 at 18:06
  • 1
    It will be tricky if you try to memorize each verb individually. Instead, simply think about what the word means. Things like where you live, where you work, what you know, or who you are married to are pretty much constant – they don’t change from day to day, but are pretty much constant from month to month (barring some momentous event). But things like what you are cooking, eating, or reading, or where you are sitting, napping, or dancing keep changing – there’s a good chance they will be different tomorrow than they were today.
    – J.R.
    Jun 9, 2018 at 20:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .