此处使用现在完成时表达的是将来完成时( you will have finished )的含义,因为在时间和条件状语从句里经常用一般现在(有时也用现在完成时)表示将来事 情.
例:When you have finished the report, I will have waited for about 3 hours.(等你完成这份报告的时候,我就已经等了将近3个小时了.)
Don't get off the bus untill it has stopped.
Once she has made up her mind, nobody can change it.
希望对你有所帮助.