def to_s
      _days = days
      _milliseconds = milliseconds
      
      s = nil
      if _days == 0
        if _milliseconds == 0
          s = sprintf("%d:%02d:%02d", hours, minutes.abs, seconds.abs)
        else
          s = sprintf("%d:%02d:%02d.%03d", hours, minutes.abs, seconds.abs, _milliseconds.abs)
        end
      else
        if _milliseconds == 0
          s = sprintf("%dd:%02d:%02d:%02d", _days, hours.abs, minutes.abs, seconds.abs)
        else
          s = sprintf(
            "%dd:%02d:%02d:%02d.%03d",
            _days,
            hours.abs,
            minutes.abs,
            seconds.abs,
            _milliseconds.abs)
        end
      end
      return s
    end
def to_s
      _days = days
      _milliseconds = milliseconds
      
      s = nil
      if _days == 0
        if _milliseconds == 0
          s = sprintf("%d:%02d:%02d", hours, minutes.abs, seconds.abs)
        else
          s = sprintf("%d:%02d:%02d.%03d", hours, minutes.abs, seconds.abs, _milliseconds.abs)
        end
      else
        if _milliseconds == 0
          s = sprintf("%dd:%02d:%02d:%02d", _days, hours.abs, minutes.abs, seconds.abs)
        else
          s = sprintf(
            "%dd:%02d:%02d:%02d.%03d",
            _days,
            hours.abs,
            minutes.abs,
            seconds.abs,
            _milliseconds.abs)
        end
      end
      return s
    end
Returns an SDL representation of this time span using the format:

   (days:)hours:minutes:seconds(.milliseconds)

 (parenthesis indicate optional components)

 The days and milliseconds components will not be included if they
 are set to 0.  Days must be suffixed with "d" for clarity.

 Hours, minutes, and seconds will be zero paded to two characters.

 Examples:

     23:13:00 (12 hours and 13 minutes)
     24d:12:13:09.234 (24 days, 12 hours, 13 minutes, 9 seconds,
         234 milliseconds)