// partType :
// 0 - Hours,
// 1 - Minutes,
// 2 - Seconds,
// 3 - Hours.Minutes (HH.MM)
// 4 - All (HH:MM:SS)
private string GetTimeBetweenDates(DateTime firstDate,
DateTime secondDate, int partType)
{
string returnDate = null;
if ( firstDate < secondDate )
{
TimeSpan spanDiff = secondDate.Subtract(firstDate);
int Hours = spanDiff.Hours;
int Minutes = spanDiff.Minutes;
string strMinutes = string.Empty;
int Seconds = spanDiff.Seconds;
// Fix minutes
switch (Minutes)
{
case 1: case 2: case 3: case 4: case 5: case 6:
strMinutes = "0" + Minutes;
break;
default:
strMinutes = Minutes.ToString();
break;
}
//return value
switch (partType)
{
case 0:
returnDate = Hours.ToString();
break;
case 1:
returnDate = strMinutes;
break;
case 2:
returnDate = Seconds.ToString();
break;
case 3:
returnDate = Hours + "." + strMinutes;
break;
case 4:
returnDate = Hours + ":" + strMinutes + ":" + Seconds;
break;
}
}
// return date
return (returnDate);
}
private void AddTimeToDate(double dbTime, ref DateTime OriginalDate)
{
string[] SplitTimeToAdd = dbTime.ToString().Split('.');
double Hours = Convert.ToDouble(SplitTimeToAdd[0].ToString());
// Add the hours
OriginalDate = OriginalDate.AddHours(Hours);
// Do some conversion on minutes
// .0x -> Reads 5 minutes,
// .x0 -> Reads 50 minutes
// .xx -> Reads 33 minutes
// .00 -> Reads 0 minutes
double Minutes = 0.0;
// Convert the minutes section to an array of chars
if ( SplitTimeToAdd.Length > 1 )
{
if ( SplitTimeToAdd[1].Length >= 1 )
{
// .x case
if ( (SplitTimeToAdd[1].Length == 1) )
Minutes = (Convert.ToDouble(SplitTimeToAdd[1].ToString()) * 10 );
else
Minutes = Convert.ToDouble(SplitTimeToAdd[1].ToString());
// Add the calculated minutes
OriginalDate = OriginalDate.AddMinutes(Minutes);
}
}
else
// Add the calculated minutes
OriginalDate = OriginalDate.AddMinutes(Minutes);
}