All the good excuses ...

You should always plan to finish (implementation AND testing AND documentation) a project one week before the due date ...

What if the internet does not work the due day ?

What if you get ill the day before ?

What if your hard drive crash the antepenultimate day ?

What if there is no text editor available in the lab ?

What if you first have to the learn the language before beginning the assignment ?

What if you decide to begin the testing step of your project 2 hours before the due time, and that eventually a major bug appears ?

What if you decide to post your project at 23H59mn500ms and you forgot than the "client" mailbox could be more than 500ms away from your mail tool ? or perhaps is full ?

What if you are so used to program at night that you forgot that midnight isn't in fact midday ?

What if by the end, you get so tired that you send the wrong version ?

What if the last video data projector get stolen the day before your presentation ?

What is one member of your team decide to resign right in the middle of the project ?

What if the computer you had planed to work on is not available ?

What if your first child made her first teeth the week before ?

What if your third great mother die this year ?

What if ...

You should had planed something for each situation ...

At least ... you should try to negotiate : keep your client informed

And how much does it cost ?

1500$/day ... 10% a day for late penalties  and one or two bonus point