break;
case 'e':
outwalk += sprintf(outwalk, "%d", dt->season_day + 1);
+ if (dt->season_day > 9 && dt->season_day < 13) {
+ outwalk += sprintf(outwalk, "th");
+ break;
+ }
+
switch (dt->season_day % 10) {
case 0:
outwalk += sprintf(outwalk, "st");
return &dt;
}
-void print_ddate(yajl_gen json_gen, char *buffer, const char *format, struct tm *current_tm) {
+void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t) {
char *outwalk = buffer;
static char *form = NULL;
+ struct tm current_tm;
struct disc_time *dt;
- if ((dt = get_ddate(current_tm)) == NULL)
+ set_timezone(NULL); /* Use local time. */
+ localtime_r(&t, ¤t_tm);
+ if ((dt = get_ddate(¤t_tm)) == NULL)
return;
if (form == NULL)
if ((form = malloc(strlen(format) + 1)) == NULL)