This is what's happening: it's still between 8 AM and 5 PM on the weekend, so it unlocks it. Since you use an else if, it terminates the if statement and never checks the day between 8 and 5. I'm almost positive that if you checked it another time in the day, it'd be "locked."
Fixed code:
#include <Time.h>
#define doorPin 9
void setup() {
// put your setup code here, to run once:
pinMode(doorPin, OUTPUT); // Connected to relay to activate the door lock
setTime(10,1,1,6,7,2014);
}
void loop() {
if ((hour()>=8 && hour()<=17) && !(weekday()==1 || weekday()==7)){
digitalWrite(doorPin, HIGH);
}
else {
digitalWrite(doorPin, LOW);
}
Note: ! means "not." Thus, the door is locked only if it's not a weekend and it's between 8 and 5.
Additionally, you might want to get a lock that is the other way around: unlocked only with power applied so someone can't unplug the Arduino to get access. EDIT: miscommunication, ignore this part paragraph...