PDA

View Full Version : سوال: نحوه ضرب یک عدد در یک زمان



nima898
یک شنبه 07 شهریور 1389, 22:34 عصر
سلام دوستان
چطوری میتونم مثلا زمان "00:01:00" رو در عدد 1.5 ضرب کنم( حاصلش میشه "00:01:30")

xminxmin
دوشنبه 08 شهریور 1389, 01:42 صبح
ابتدا زمان رو به ثانيه محاسبه كن و بعد از ضرب دوباره نتيجه رو به زمان تبديل كن
اگر دقت كني مي بيني تو محاسبه خودت هم همين كار رو توي ذهنت انجام دادي:لبخندساده:

nima898
سه شنبه 09 شهریور 1389, 09:27 صبح
ابتدا زمان رو به ثانيه محاسبه كن و بعد از ضرب دوباره نتيجه رو به زمان تبديل كن
اگر دقت كني مي بيني تو محاسبه خودت هم همين كار رو توي ذهنت انجام دادي:لبخندساده:

ممنون که جواب دادین منظورم از این روش نبود

mahdi1373
سه شنبه 09 شهریور 1389, 13:44 عصر
ممنون که جواب دادین منظورم از این روش نبود

پس منظورتون چی بود؟

Saman_12
سه شنبه 09 شهریور 1389, 15:18 عصر
با اینکه گفته بودی منظورت این نیست اما چون خود من راه دیگری به ذهنم نمی رسد یک فانکشن برای این کار درست کردم گفتم شاید به درد کسی خورد :


Private Function StrokeTime(ByVal Time As String, ByVal Number As Double) As String
Dim Houer, Minute, Second As String
Dim Befor, After As String, Dot As Integer
Dim Timer As Integer
Dim Bo As Boolean = False

Houer = Mid(Time, 1, 2) * 60 * 60
Minute = Mid(Time, 4, 2) * 60
Second = Mid(Time, 7, 2)

If Houer = 0 Or Houer = "00" Then Bo = True

Timer = Houer + +Minute + +Second
Timer *= Number

Minute = Timer / 60
Dot = InStr(Minute, ".")
If Dot <> 0 Then
Befor = Mid(Minute, 1, Dot - 1)
After = Mid(Minute, Dot) * 60
Second = After
Minute = Befor
Else
Second = 0
End If

Houer = Minute / 60
Dot = InStr(Houer, ".")
If Dot <> 0 Then
Befor = Mid(Houer, 1, Dot - 1)
After = Mid(Houer, Dot) * 60
Minute = After
Houer = Befor
Else
Minute = 0
End If

StrokeTime = TimeSerial(Houer, Minute, Second)

If Bo = True Then StrokeTime = "00" & Mid(StrokeTime, 3)

End Function

اینم طریقه استفادش :

MsgBox(StrokeTime("00:01:00", 1.5))


این فانکشن رو اینجوری هم میشه استفاده کرد در هر صورت کار میکنه (اما این کوتاه تره!) :


Private Function StrokeTime(ByVal Time As String, ByVal Number As Double) As String
Dim Houer, Minute, Second As String
Dim Timer As Integer
Dim Bo As Boolean = False

Houer = Mid(Time, 1, 2) * 60 * 60
Minute = Mid(Time, 4, 2) * 60
Second = Mid(Time, 7, 2)

If Houer = 0 Or Houer = "00" Then Bo = True

Timer = Houer + +Minute + +Second
Timer *= Number

StrokeTime = TimeSerial(0, 0, Timer)

If Bo = True Then StrokeTime = "00" & Mid(StrokeTime, 3)

End Function

nima898
سه شنبه 09 شهریور 1389, 21:00 عصر
با تشکر
ببخشید که واضح ننوشتم
منظورم این بود که "خود vb.net همچین امکانی نداره؟"

با اینکه گفته بودی منظورت این نیست اما چون خود من راه دیگری به ذهنم نمی رسد یک فانکشن برای این کار درست کردم گفتم شاید به درد کسی خورد :

ممنون

Saman_12
سه شنبه 09 شهریور 1389, 21:23 عصر
با تشکر
ببخشید که واضح ننوشتم
منظورم این بود که "خود vb.net همچین امکانی نداره؟"

ممنون
نه فکر نکنم.(اگر هم هست من ندیدم.)