Fix bug in comparison functions, add equality test
This commit is contained in:
parent
be475c5dc1
commit
728d0b6151
|
@ -69,6 +69,7 @@ void iso8601_print(char* str, int amt, const struct iso8601_date* date,
|
||||||
/* manip.c */
|
/* manip.c */
|
||||||
int iso8601_lt(const struct iso8601_date* d1, const struct iso8601_date* d2);
|
int iso8601_lt(const struct iso8601_date* d1, const struct iso8601_date* d2);
|
||||||
int iso8601_lte(const struct iso8601_date* d1, const struct iso8601_date* d2);
|
int iso8601_lte(const struct iso8601_date* d1, const struct iso8601_date* d2);
|
||||||
|
int iso8601_eq(const struct iso8601_date* d1, const struct iso8601_date* d2);
|
||||||
void iso8601_add_seconds(struct iso8601_date* date, long seconds);
|
void iso8601_add_seconds(struct iso8601_date* date, long seconds);
|
||||||
|
|
||||||
/* leap.c */
|
/* leap.c */
|
||||||
|
|
|
@ -13,8 +13,8 @@ int iso8601_lt(const struct iso8601_date* d1, const struct iso8601_date* d2)
|
||||||
if(d1->day > d2->day) return 0;
|
if(d1->day > d2->day) return 0;
|
||||||
if(d1->sec < d2->sec) return 1;
|
if(d1->sec < d2->sec) return 1;
|
||||||
if(d1->sec > d2->sec) return 0;
|
if(d1->sec > d2->sec) return 0;
|
||||||
if(d1->nsec < d2->nsec) return 0;
|
if(d1->nsec < d2->nsec) return 1;
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,12 +25,19 @@ int iso8601_lte(const struct iso8601_date* d1, const struct iso8601_date* d2)
|
||||||
if(d1->day > d2->day) return 0;
|
if(d1->day > d2->day) return 0;
|
||||||
if(d1->sec < d2->sec) return 1;
|
if(d1->sec < d2->sec) return 1;
|
||||||
if(d1->sec > d2->sec) return 0;
|
if(d1->sec > d2->sec) return 0;
|
||||||
if(d1->nsec < d2->nsec) return 0;
|
if(d1->nsec < d2->nsec) return 1;
|
||||||
return d1->nsec == d2->nsec;
|
return d1->nsec == d2->nsec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int iso8601_eq(const struct iso8601_date* d1, const struct iso8601_date* d2)
|
||||||
|
{
|
||||||
|
return (d1->day == d2->day) && (d1->sec == d2->sec) && (d1->nsec == d2->nsec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void iso8601_add_seconds(struct iso8601_date* date, long seconds)
|
void iso8601_add_seconds(struct iso8601_date* date, long seconds)
|
||||||
{
|
{
|
||||||
int sday;
|
int sday;
|
||||||
|
|
Loading…
Reference in New Issue