30static TQString minutesToISODuration( int mn )
34 TQString str = TQString::fromLatin1( "PT00H%1M00S" ).arg( TQABS( mn ) );
40static TQString daysToISODuration( int days )
44 TQString str = TQString::fromLatin1( "P%1D" ).arg( TQABS( days ) );
50static int ISODurationToMinutes( const TQString& str )
53 const int len = str.length();
54 bool neg = str[idx] == '-';
57 if ( idx < len && str[idx] == 'P' )
59 if ( idx < len && str[idx] == 'T' )
64 if ( str[idx].isDigit() )
65 currentNum = currentNum * 10 + str[idx].latin1() - '0';
67 if ( str[idx] == 'D' )
68 minutes += 24 * 60 * currentNum;
69 else if ( str[idx] == 'H' )
70 minutes += 60 * currentNum;
71 else if ( str[idx] == 'M' )
72 minutes += currentNum;
77 return neg ? -minutes : minutes;
80static int ISODurationToDays( const TQString& str )
83 const int len = str.length();
84 bool neg = str[idx] == '-';
87 if ( idx < len && str[idx] == 'P' )
89 if ( idx < len && str[idx] == 'T' )
94 if ( str[idx].isDigit() )
95 currentNum = currentNum * 10 + str[idx].latin1() - '0';
97 if ( str[idx] == 'Y' )
98 days += 365 * currentNum;
99 else if ( str[idx] == 'M' )
100 days += 30 * currentNum;
101 else if ( str[idx] == 'D' )
107 return neg ? -days : days;
|