1
0
Fork 0
forked from len0rd/rockbox

date calculation corrected, fixes #7096 and #7097

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13318 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Antonius Hellmann 2007-05-04 07:37:19 +00:00
parent d7e8e38253
commit d68a51680f

View file

@ -68,13 +68,13 @@ int rtc_read_datetime(unsigned char* buf)
year = 1980; year = 1980;
while(seconds>=LEAP_YEAR_SECONDS) while(seconds>=LEAP_YEAR_SECONDS)
{ {
year++;
if(is_leapyear(year)){ if(is_leapyear(year)){
seconds -= LEAP_YEAR_SECONDS; seconds -= LEAP_YEAR_SECONDS;
} else { } else {
seconds -= YEAR_SECONDS; seconds -= YEAR_SECONDS;
} }
year++;
} }
if(is_leapyear(year)) { if(is_leapyear(year)) {
@ -102,6 +102,7 @@ int rtc_read_datetime(unsigned char* buf)
/* Month Day */ /* Month Day */
buf[4] = seconds/DAY_SECONDS; buf[4] = seconds/DAY_SECONDS;
seconds -= buf[4]*DAY_SECONDS; seconds -= buf[4]*DAY_SECONDS;
buf[4]++; /* 1 ... 31 */
/* Hour */ /* Hour */
buf[2] = seconds/HOUR_SECONDS; buf[2] = seconds/HOUR_SECONDS;
@ -146,7 +147,7 @@ int rtc_write_datetime(unsigned char* buf)
} }
/* Number of days in years gone by since 1-Jan-1980 */ /* Number of days in years gone by since 1-Jan-1980 */
year_days = 365*(buf[6]+20) + buf[6]/4 + 6; year_days = 365*(buf[6]+20) + (buf[6]-1)/4 + 6;
/* Convert to seconds since 1-Jan-1980 */ /* Convert to seconds since 1-Jan-1980 */
seconds = buf[0] seconds = buf[0]