I'd be happy if someone answer my question concerning these sentence: (I saw them in a grammar book.)
A: By the end of next month, he will have been teaching at this school.
B: I had been waiting an hour before an old man spoke to me.
I wonder if in A, "By" goes with "will have been teaching". "By" demands Perfection, while "will have been teaching" expresses Duration. It's puzzling to me. Could somebody help me?
Similarly puzzling to me is ---in B, "before" demands Perfection, while "had been waiting" expresses Duration. I think "when" would be better used than "before".
Why does "before" go with "had been waiting"?