Solved

seconds to hours, minutes and seconds

Posted on 2000-03-10
2
214 Views
Last Modified: 2010-05-02
If I have seconds, is there function which returns me hours minutes and seconds?

example:
seconds=3602
I need a function/functions which returns me 1 hour 0 minutes 2 seconds (hope I counted it right).

Thanks in advance!
0
Comment
Question by:majala
  • 2
2 Comments
 
LVL 9

Accepted Solution

by:
Ruchi earned 30 total points
ID: 2603636
I posted this code to this similiar code.

'Declarations:

'(None)

'Code:

Public Function TimeString(Seconds As Long, Optional Verbose _
As Boolean = False) As String

'if verbose = false, returns
'something like
'02:22.08
'if true, returns
'2 hours, 22 minutes, and 8 seconds

Dim lHrs As Long
Dim lMinutes As Long
Dim lSeconds As Long

lSeconds = Seconds

lHrs = Int(lSeconds / 3600)
lMinutes = (Int(lSeconds / 60)) - (lHrs * 60)
lSeconds = Int(lSeconds Mod 60)

Dim sAns As String


If lSeconds = 60 Then
  lMinutes = lMinutes + 1
  lSeconds = 0
End If

If lMinutes = 60 Then
  lMinutes = 0
  lHrs = lHrs + 1
End If

sAns = Format(CStr(lHrs), "#####0") & ":" & _
Format(CStr(lMinutes), "00") & ":" & _
Format(CStr(lSeconds), "00")

If Verbose Then sAns = TimeStringtoEnglish(sAns)
TimeString = sAns

End Function

Private Function TimeStringtoEnglish(sTimeString As String) _
As String

Dim sAns As String
Dim sHour, sMin As String, sSec As String
Dim iTemp As Integer, sTemp As String
Dim iPos As Integer
iPos = InStr(sTimeString, ":") - 1

sHour = Left$(sTimeString, iPos)
If CLng(sHour) <> 0 Then
  sAns = CLng(sHour) & " hour"
  If CLng(sHour) > 1 Then sAns = sAns & "s"
  sAns = sAns & ", " 
End If

sMin = Mid$(sTimeString, iPos + 2, 2)

iTemp = sMin

If sMin = "00" Then
 sAns = IIf(Len(sAns), sAns & "0 minutes, and ", "")
Else
 sTemp = IIf(iTemp = 1, " minute", " minutes")
 sTemp = IIf(Len(sAns), sTemp & ", and ", sTemp & " and ")
 sAns = sAns & Format$(iTemp, "##") & sTemp
End If

iTemp = Val(Right$(sTimeString, 2))
sSec = Format$(iTemp, "#0")
sAns = sAns & sSec & " second"
If iTemp <> 1 Then sAns = sAns & "s"

TimeStringtoEnglish = sAns

End Function


Private Sub Form_Load()
    MsgBox TimeString(3602)
End Sub
0
 
LVL 9

Expert Comment

by:Ruchi
ID: 2603641
I meant that I posted this code to this similiar question. (not code)
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question