Recent Posts

Tags

Community

Email Notifications

All Links

Blogs I Read

My Articles

JavaScript & CSS

Date & Time

SQL Server 2000/2005

Articles I Read

ASP.NET Free Controls

MVFP (Most Valuable Forum Posts)

Archives

DateTime Methods

I had today to work with some DateTime calculations.

I need two methods:

1- Get time difference between two dates, in such a way to have the following formats in the returned value:

- Hours
- Minutes (01 -> 1 minute, 10 -> 10 minutes,...)
- Seconds
- Hours.Minutes
- Hours:Minutes:Seconds

2- Add a double value for a DateTime

- double value (7.02 -> 7 hours and 2 minutes, 7.10/7.1 -> 7 hours and 10 minutes)
- DateTime value

Check the methods below:

// 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);

}

Leave a Comment

(required) 

(required) 

(optional)

(required)