| Return Type | Function name | Arguments |
|---|---|---|
| const char* | hzXDate::Txt | (hzDateFmt,) |
Declared in file: hzDate.h
Defined in file : hzDate.cpp
Function Logic:
Function body:
const char* hzXDate::Txt (hzDateFmt eFmt)
{
_hzfunc("hzXDate::Txt") ;
char* pBuf ;
bool bUS ;
bool bFN ;
int32_t nSofar = 0;
if (!m_hour && !m_usec)
return 0;
pBuf = _thisfn.ScratchPad(32);
if (eFmt == FMT_DT_INET)
{
if (bUS)
sprintf(pBuf, "%s %s %d %04d %02d:%02d:%02d +0000 (GMT)", hz_daynames_abrv[Dow()], hz_monthnames_abrv[Month() - 1],Day(), Year(), Hour(), Min(), Sec()) ;
else
sprintf(pBuf, "%s %d %s %04d %02d:%02d:%02d +0000 (GMT)", hz_daynames_abrv[Dow()], Day(), hz_monthnames_abrv[Month() - 1],Year(), Hour(), Min(), Sec()) ;
return pBuf ;
}
bUS = eFmt & FMT_DATE_USA ? true : false ;
bFN = eFmt & FMT_DATE_FULL ? true : false ;
if (eFmt & FMT_DATE_DOW)
{
if (bFN)
strcpy(pBuf, hz_daynames_full[Dow()]) ;
else
strcpy(pBuf, hz_daynames_abrv[Dow()]) ;
nSofar = strlen(pBuf) ;
}
if (eFmt & FMT_DT_MASK_DATES)
{
if (nSofar)
{
pBuf[nSofar] = CHAR_SPACE ;
nSofar++ ;
}
switch (eFmt & FMT_DT_MASK_DATES)
{
case FMT_DATE_DFLT:
nSofar += sprintf(pBuf + nSofar, "%04d%02d%02d", Year(), Month(), Day());
break ;
case FMT_DATE_STD:
nSofar += sprintf(pBuf + nSofar, "%04d/%02d/%02d", Year(), Month(), Day());
break ;
case FMT_DATE_NORM:
if (bUS)
nSofar += sprintf(pBuf + nSofar, "%02d/%02d/%04d", Month(), Day(), Year()) ;
else
nSofar += sprintf(pBuf + nSofar, "%02d/%02d/%04d", Day(), Month(), Year()) ;
break ;
case FMT_DATE_FULL:
if (bUS)
nSofar += sprintf(pBuf + nSofar, "%s %d %04d", hz_monthnames_abrv[Month() - 1],Day(), Year()) ;
else
nSofar += sprintf(pBuf + nSofar, "%d %s %04d", Day(), hz_monthnames_abrv[Month() - 1],Year()) ;
break ;
}
}
if (eFmt & FMT_DT_MASK_TIMES)
{
if (nSofar)
{
pBuf[nSofar] = CHAR_MINUS ;
nSofar++ ;
}
switch (eFmt & FMT_DT_MASK_TIMES)
{
case FMT_TIME_DFLT: // Time HHMMSS
nSofar += sprintf(pBuf + nSofar, "%02d%02d%02d", Hour(), Min(), Sec()) ;
break ;
case FMT_TIME_STD: // Time HH:MM:SS
nSofar += sprintf(pBuf + nSofar, "%02d:%02d:%02d", Hour(), Min(), Sec()) ;
break ;
case FMT_TIME_USEC: // Time HH:MM:SS.uSec
nSofar += sprintf(pBuf + nSofar, "%02d:%02d:%02d.%06d", Hour(), Min(), Sec(), uSec()) ;
break ;
}
}
if (eFmt & FMT_DT_MASK_TZONE)
{
if (nSofar)
{
pBuf[nSofar] = CHAR_SPACE ;
nSofar++ ;
}
switch (eFmt & FMT_DT_MASK_TIMES)
{
case FMT_TZ_CODE: strcpy(pBuf + nSofar, "GMT") ; break ;
case FMT_TZ_NUM: strcpy(pBuf + nSofar, "+0000") ; break ;
case FMT_TZ_BOTH: strcpy(pBuf + nSofar, "+0000 (GMT)") ; break ;
}
}
return pBuf ;
}