struct tm gmttm, lttm;
int dayyear;
char *timestr;
+ const char *weekday = NULL, *month = NULL;
/* 6 + 26 + ' ' + timezone which is 5 + '\n\0' == 40 */
timestr = (char *)malloc(40);
strcpy(timestr, "Date: ");
t = time(NULL);
- ctime_r(&t, timestr + 6);
localtime_r(&t, <tm);
gmtime_r(&t, &gmttm);
else
t += 24 * 60 * 60;
}
+
+ switch(lttm.tm_wday) {
+ case 0: weekday = "Sun";
+ break;
+ case 1: weekday = "Mon";
+ break;
+ case 2: weekday = "Tue";
+ break;
+ case 3: weekday = "Wed";
+ break;
+ case 4: weekday = "Thu";
+ break;
+ case 5: weekday = "Fri";
+ break;
+ case 6: weekday = "Sat";
+ break;
+ default:
+ break;
+ }
+ switch(lttm.tm_mon) {
+ case 0: month = "Jan";
+ break;
+ case 1: month = "Feb";
+ break;
+ case 2: month = "Mar";
+ break;
+ case 3: month = "Apr";
+ break;
+ case 4: month = "May";
+ break;
+ case 5: month = "Jun";
+ break;
+ case 6: month = "Jul";
+ break;
+ case 7: month = "Aug";
+ break;
+ case 8: month = "Sep";
+ break;
+ case 9: month = "Oct";
+ break;
+ case 10: month = "Nov";
+ break;
+ case 11: month = "Dec";
+ break;
+ default:
+ break;
+ }
+
- snprintf(timestr+30, 40, " %+05ld\n", ((long int)t)/36);
+ snprintf(timestr, 40, "Date: %s, %02d %s %d %d:%d:%d %+05d\n",
+ weekday, lttm.tm_mday, month, lttm.tm_year + 1900,
+ lttm.tm_hour, lttm.tm_min, lttm.tm_sec, ((int)t)/36);
return timestr;
}