簡単な英文法なのですが、
「three years have passed since my father died.(父が死んで以来3年です。)」みたいな文は典型的には「three years」は「複数」と見なして、「have」の形をとります。
そのくせ、「two hours is long enough.(2時間は十分な長さだ。)」みたいな時は「two hours」を“1まとめ”と見なして、「単数」で扱い、「is」が正解となります。
双方とも、同じ“1まとめ”に意識しそうな文脈だと思うのですが…
この違いはどこから来るのか、どなたかアイディアを頂けませんか?
ご指摘の「three years have passed since my father died」もこの類です。本来ならば、仰るように、
このthree years を a period of three years として「ひとまとめ」に意識すべきものであるはずです。
しかし何故か複数扱いになってしまった。ということです。ここでthree years has passed としたら間違いか?と問われれば、「間違いというわけではないが、一般的にはhaveを使う」という答え方になるのだと思います。
Ten minutes' walk brought us to the post office.のパターンだと思って自己完結していたのですが、もっとシンプルな理由でした。
↓
Expressions of time, money and distance usually take a singular verb:
用例)
Ten dollars is a great deal of money to a child.
Ten kilometres is too far to walk.
Six weeks is not long enough.
ん? それなら、
Three years have passed since my father died.
がhasじゃないのはなぜ? have passedで習ったよ?
とこんがらかったので、調べてみましたが、
Three years has passed since you quit this school.
という用例が普通に出てきました。
Three years have passedもThree years has passedも間違いではなく、結局は書き手が、three years を one time interval としてとらえるか、three distinct units of time ととらえるかによるものらしいです。
http://english.stackexchange.com/questions/290993/saying-how-many-years-have-or-has-passed