Hello, been racking my brains on this one for a long time, and I've finally decided to ask the question.

I had sevaral fields on a vb.net form which need to come together

Date = date the machinery was switched on

start Time = Time (on the above date) when the machinery was switched on

Stop time = Time when the machinery was switched off - BUT if stop time < start time then add one day to the Date because we have obviously gone past midnight.

Used Time = Number of hours:Minutes between start and stop.

Original total time = the Total Hours:minutes used life of the machinery (this I retrieve from another source)

New Total Time = The Original Total Time + Used Time

The original total time is over 15,000 hours, ie 15421:35

I keep finding answers, and applying them to a test program, but get plenty of errors like (Conversion from string "10004:11" to type 'Date' is not valid.)

Any help would be greatly appreciated

# Adding time to date, then adding another time

## Calculating total usage based on times used

Page 1 of 1## 3 Replies - 14046 Views - Last Post: 08 November 2010 - 07:16 AM

##
**Replies To:** Adding time to date, then adding another time

### #2

## Re: Adding time to date, then adding another time

Posted 07 November 2010 - 12:15 PM

To add to a date, you can use .AddDays

NewDate is now equal to 11/8/2010

You can also use TimeSpan to get the difference between two times.

as far as your number hours:min. You could split the string based on the : and perform the calculation against todays date.

This would put 15421 into an integer and 35 into another integer variable

Repeat this for your current time used (based on the same input ie: 11:15) then you can add them together and save it for the next addition of time to the machine.

Dim dt as Date = #11/7/2010# dim newDate as Date = dt.adddays(1)

NewDate is now equal to 11/8/2010

You can also use TimeSpan to get the difference between two times.

as far as your number hours:min. You could split the string based on the : and perform the calculation against todays date.

Dim originalTotalTime As String = "15421:35" Dim HrsMin() As String = originalTotalTime.Split(":"c) Dim hours As Integer = CInt(HrsMin(0)) Dim minutes As Integer = CInt(HrsMin(1))

This would put 15421 into an integer and 35 into another integer variable

Repeat this for your current time used (based on the same input ie: 11:15) then you can add them together and save it for the next addition of time to the machine.

This post has been edited by **CharlieMay**: 07 November 2010 - 12:31 PM

### #3

## Re: Adding time to date, then adding another time

Posted 08 November 2010 - 02:17 AM

CharlieMay, on 07 November 2010 - 11:15 AM, said:

To add to a date, you can use .AddDays

NewDate is now equal to 11/8/2010

You can also use TimeSpan to get the difference between two times.

as far as your number hours:min. You could split the string based on the : and perform the calculation against todays date.

This would put 15421 into an integer and 35 into another integer variable

Repeat this for your current time used (based on the same input ie: 11:15) then you can add them together and save it for the next addition of time to the machine.

Dim dt as Date = #11/7/2010# dim newDate as Date = dt.adddays(1)

NewDate is now equal to 11/8/2010

You can also use TimeSpan to get the difference between two times.

as far as your number hours:min. You could split the string based on the : and perform the calculation against todays date.

Dim originalTotalTime As String = "15421:35" Dim HrsMin() As String = originalTotalTime.Split(":"c) Dim hours As Integer = CInt(HrsMin(0)) Dim minutes As Integer = CInt(HrsMin(1))

This would put 15421 into an integer and 35 into another integer variable

Repeat this for your current time used (based on the same input ie: 11:15) then you can add them together and save it for the next addition of time to the machine.

This was a huge help, thankyou, but the time 15421:35 is a calculated usage time, not a text entry, so when vb.net retrieves this value from the spreadsheet, it treats the number as a decimal = "500.363194444444"

Is there a way I can get vb.net to recognise the number as the time value 15421:35 and not the decimal equivalent,

Thanks

### #4

## Re: Adding time to date, then adding another time

Posted 08 November 2010 - 07:16 AM

Well, if I'm understanding correctly, 500.363194444444 would equal 8:20 am in excel with is 500.36 minutes from midnight. So if that is the case you should be able to use

Dim StartTime As Date = #12:00:00 AM# Dim MyTimeFromExcel As Decimal = 500.363194444444 Dim MyNewTime As Date = StartTime.AddMinutes(MyTimeFromExcel) Dim HrsMin() As String = MyNewTime.ToString("h:mm").Split(":"c) MessageBox.Show("Converted Time From Excel: " & MyNewTime & Environment.NewLine & _ "Hours from Converted Time: " & HrsMin(0) & Environment.NewLine & _ "Mins from Converted Time: " & HrsMin(1))

Page 1 of 1