By the time you arrived in Sydney,we will have stayed in Austrilia for more than two weeks.

问题描述:

By the time you arrived in Sydney,we will have stayed in Austrilia for more than two weeks.
为什么是 we will have stayed?
有人说by the time是虚拟句?
by the time 不是虚拟句为什么要用过去式?
如果只是过去式为什么那里不用过去时态的将来完成时?
应该用would have stayed

此题by the time 后用的虚拟语气,此题by the time 表条件,用法和主将从现基本一样.
虚拟语气用过去表现在或将来,都只做条件,是对将来的一种假设.而此题后半句中又换回正常时态,所以用将来完成时.
此题翻译:等你到悉尼的时候,我们已经在那两周多了.