If it is getting it from the DS1307 0x03 register, you should know that the DS1307 counts from 1 through 7, not zero through 6. I mean, the chip doesn't actually calculate the day of the week, it simply counts from the value that you give it. Maybe you should set the day accordingly, using and interpreting values 1-7 instead of 0-6.
The day-of-week register in the DS1307 counts from 1 through 7. It doesn't know anything about Sunday, Monday, etc. It's just a counter that is incremented every day at midnight.
If you want the first day of the week to be Sunday and today is Sunday, set the day-of-week to the value 1. If today is Monday, set the day-of-week to the value 2, etc. Then, every time you read the day of week from the DS1307,
1 ==> Sunday
2 ==> Monday
.
.
.
7 ==> Saturday
That's the way that many of my U.S. friends work calendars.
For many of my European friends:
If you want the first day of the week to be Monday and today is Monday, you set day-of-week register to the value 1.
Then when you read the day-of-week register on the DS1307
1 ==> Monday
2 ==> Tuesday
.
.
.
7 ==> Sunday