---------------------------------------------------------------- Public Function FormatTimeSpanString(ByVal pTimeString As String) As String Dim delimStr As String = ":" Dim delimiter As Char() = delimStr.ToCharArray() Dim componentStrings As String() = Nothing componentStrings = pTimeString.Split(delimStr, 2) Dim strMins, strHours As String Dim intMins, intHours As Int32 strHours = componentStrings(0) intHours = Convert.ToInt32(strHours) strMins = componentStrings(1) intMins = Convert.ToInt32(strMins) While intMins >= 60 intHours += 1 intMins -= 60 End While Dim intDays As Int32 = 0 While intHours >= 24 intDays += 1 intHours -= 24 End While Return (intDays.ToString() + "." + intHours.ToString() + ":" + intMins.ToString()) End Function ---------------------------------------------------------------- Use the above function as a Wrapper function for TimeSpan String values So in your code, instead of doing something this: '------------------------------------------------- Dim SomeTimeSpanString As String = "45:30" Dim ts As TimeSpan = TimeSpan.Parse(SomeTimeSpanString) 'This will crash with "System.OverflowException: TimeSpan overflowed becuase duration is too long" exception. Rather do something like this: '-------------------------------- Dim SomeTimeSpanString As String = "45:30" Dim ts As TimeSpan = TimeSpan.Parse(FormatTimeSpanString(SomeTimeSpanString)) 'This will not crash as any over-the-bounds minutes(eg: 75) and hours (eg: 25) 'will be changed into hours and days in the acceptable format.