always use mktimegm

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3570 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2007-11-10 19:36:39 +00:00
parent da0b0df8c7
commit 3c6b20885d
3 changed files with 16 additions and 1 deletions

View File

@ -81,3 +81,17 @@ int stristart(const char *str, const char *val, const char **ptr)
*ptr = p;
return 1;
}
time_t mktimegm(struct tm *tm)
{
time_t t;
int y = tm->tm_year + 1900, m = tm->tm_mon + 1, d = tm->tm_mday;
if (m < 3) {
m += 12;
y--;
}
t = 86400 * (d + (153 * m - 457) / 5 + 365 * y + y / 4 - y / 100 +
y / 400 - 719469);
t += 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec;
return t;
}

2
vl.c
View File

@ -8116,7 +8116,7 @@ int main(int argc, char **argv)
}
tm.tm_year -= 1900;
tm.tm_mon--;
rtc_start_date = timegm(&tm);
rtc_start_date = mktimegm(&tm);
if (rtc_start_date == -1) {
date_fail:
fprintf(stderr, "Invalid date format. Valid format are:\n"

1
vl.h
View File

@ -123,6 +123,7 @@ void pstrcpy(char *buf, int buf_size, const char *str);
char *pstrcat(char *buf, int buf_size, const char *s);
int strstart(const char *str, const char *val, const char **ptr);
int stristart(const char *str, const char *val, const char **ptr);
time_t mktimegm(struct tm *tm);
/* vl.c */
uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);