✔ 最佳答案
If something happens "by" a particular time, it happens "at" or "before" that time.
"By" eight o'clock he had arrived at my hotel.這裡給的八點鐘是終點,不是事件的發生點,所以受其修飾的述部用了「過去完成式」動詞。arrive是action verb,句中有過去明確的「發生」時間點時,用「過去簡單式」,沒有發生時間點,只有終點,而在當時已經有結果時,用「過去完成式」(表示事件發生在更早的時間點)。by = before
By the time I came on the scene, it was all over.
用兩個「過去簡單式」表示action verb (came)與state verb (was)是「同時」。正確。by = at
It was already out of date by the time it was published.
用兩個「過去式」,表示同時(兩個state verb)。正確。by = at
We all knew "by" then that the affair was practically over.
knew是state verb,通常用「過去簡單式」即可表示這是當時的狀況(by then = 當時)。如用「過去完成式」,通常是用來與另一「過去簡單式」形成時差:一早一晚。本句無時差,故只用簡單式。by = at
「現在簡單式」是timeless present,通常是用來述說習慣或不因時而異的真理等。所以By the time 是用來說歷史事件或未來的預告。寫成By the time I arrive at the school, she will wake up.(表示未來時間座標的副詞子句,通常用現在簡單式或現在完成式,不用未來式)或寫成By the time I arrived at the school, she had woke up.才合理。我們造句不但要看語法,還要看句意是否合邏輯。by = at
By the time we arrived, the other guests "were" already there.
arrive是action verb,所以by the time裡的by = at。給的是一個時間點。而were是state verb,用「過去簡單式」表示這是「過去當時」的狀況。by = at
By the time they traveled to Shea Stadium on September 9th....
是錯誤的寫法,因為action verb的travel是一個過程,需一段時間,不能做為it was down to just one-and-a-half games這狀況的「時間點」。by = at
By the time I turned 18, I moved into a little chalet of my own and felt very grown-up.錯誤。
by the time I turned 18所給的是「過去的一個時間點」,而action verb的move發生在這個時間點之前,該用「過去完成式」had already moved,有時差,才合理。by = at
By the time I go to school, she wakes up.錯誤。因為action verb的現在簡單式是用在timeless present的狀況,即所述的行為是習慣或不變的真理等。但她醒來跟我上學是兩個有發生時間點的action。可寫成:By the time I go to school, she will wake up.(預告未來)或By the time I went to school, she would wake up.(過去的預告),或By the time I went to school, she had already woken up.(過去的事件)。