static char buf[128];
wxString fmt(dt->Format("%Y-%m-%d (%a) %H:%M:%S"));
- wxStrlcpy(buf, fmt + " (" + dt->GetValue().ToString() + " ticks)",
+ wxStrlcpy(buf,
+ (fmt + " (" + dt->GetValue().ToString() + " ticks)").ToAscii(),
WXSIZEOF(buf));
return buf;
// %l milliseconds (000 - 999)
wxString wxTimeSpan::Format(const wxString& format) const
{
+ // we deal with only positive time spans here and just add the sign in
+ // front for the negative ones
+ if ( IsNegative() )
+ {
+ wxString str(Negate().Format(format));
+ return "-" + str;
+ }
+
wxCHECK_MSG( !format.empty(), wxEmptyString,
_T("NULL format in wxTimeSpan::Format") );
n = GetHours();
if ( partBiggest < Part_Hour )
{
- if ( n < 0 )
- {
- // the sign has already been taken into account
- // when outputting the biggest part
- n = -n;
- }
-
n %= HOURS_PER_DAY;
}
else
n = GetMilliseconds().ToLong();
if ( partBiggest < Part_MSec )
{
- if ( n < 0 )
- n = -n;
-
n %= 1000;
}
//else: no need to reset partBiggest to Part_MSec, it is
n = GetMinutes();
if ( partBiggest < Part_Min )
{
- if ( n < 0 )
- n = -n;
-
n %= MIN_PER_HOUR;
}
else
n = GetSeconds().ToLong();
if ( partBiggest < Part_Sec )
{
- if ( n < 0 )
- n = -n;
-
n %= SEC_PER_MIN;
}
else
if ( digits )
{
- // negative numbers need one extra position for '-' display
- if ( n < 0 )
- digits++;
-
fmtPrefix << _T("0") << digits;
}