In Advanced Grammar In Use, Unit 20, there's this:
We also use should have + past participle to talk about an expectation that something happened, has happened, or will happen:
(1) If the flight was on time, he should have arrived in Jakarta early this morning.
(2) The builders should have finished by the end of the week.
I believe that (1) corresponds to "an expectation that something happened", and that (2) "an expectation that something will happen".
Am I right?
If so, "the week" refers to this week, and "the end of the week" a future time.
Assuming that "the end of the week" refers to a future time, do these variations of (2) work?
(2a) The builders should finish by the end of the week.
(2b) The builders should finish at the end of the week.
(2c) The builders should have finished at the end of the week.
EDIT
Having read the answers by Evelyn and RuslanD, I now know (2c) is not natural English. How about these alternatives?
(2d) The builders should have finished before the end of the week.
(2e) The builders should have finished at or before the end of the week.
(2f) The builders should have finished within the end of the week.
(2g) The builders should have finished the end of the week.
Or can you think of some other preposition that works in this sentence?