| 36 | |
| 37 | |
| 38 | void get_date(register char * to, int flag, time_t date) |
| 39 | { |
| 40 | reg2 struct tm *start_time; |
| 41 | time_t skr; |
| 42 | #if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT) |
| 43 | struct tm tm_tmp; |
| 44 | #endif |
| 45 | |
| 46 | skr=date ? (time_t) date : my_time(0); |
| 47 | #if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT) |
| 48 | if (flag & GETDATE_GMT) |
| 49 | gmtime_r(&skr,&tm_tmp); |
| 50 | else |
| 51 | localtime_r(&skr,&tm_tmp); |
| 52 | start_time= &tm_tmp; |
| 53 | #else |
| 54 | if (flag & GETDATE_GMT) |
| 55 | start_time= gmtime(&skr); |
| 56 | else |
| 57 | start_time= localtime(&skr); |
| 58 | #endif |
| 59 | if (flag & GETDATE_SHORT_DATE) |
| 60 | sprintf(to,"%02d%02d%02d", |
| 61 | start_time->tm_year % 100, |
| 62 | start_time->tm_mon+1, |
| 63 | start_time->tm_mday); |
| 64 | else |
| 65 | sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ? |
| 66 | "%4d-%02d-%02d" : "%d-%02d-%02d"), |
| 67 | start_time->tm_year+1900, |
| 68 | start_time->tm_mon+1, |
| 69 | start_time->tm_mday); |
| 70 | if (flag & GETDATE_DATE_TIME) |
| 71 | sprintf(strend(to), |
| 72 | ((flag & GETDATE_FIXEDLENGTH) ? |
| 73 | " %02d:%02d:%02d" : " %2d:%02d:%02d"), |
| 74 | start_time->tm_hour, |
| 75 | start_time->tm_min, |
| 76 | start_time->tm_sec); |
| 77 | else if (flag & GETDATE_HHMMSSTIME) |
| 78 | sprintf(strend(to),"%02d%02d%02d", |
| 79 | start_time->tm_hour, |
| 80 | start_time->tm_min, |
| 81 | start_time->tm_sec); |
| 82 | } /* get_date */ |
no test coverage detected