PDA

View Full Version : سوال: محاسبه ساعات روز و شب بین دو تاریخ



hfalahaty1
سه شنبه 17 مرداد 1391, 17:38 عصر
سلام به همه اساتید
برای محاسبه هزینه پارک نیاز به تابعی برای محاسبه زیر را دارم
فرض کنید که بین ساعت 5 تا 21 را روز در نظر گرفته و بقیه را شب
حالا میخواهیم با وارد کردن تاریخ و ساعت ورود و خروج محاسبه کنیم که خودرو مورد نظر چند ساعت در روز از پارکینگ استفاده کرده و چند ساعت در شب
برای مثال
ورود: ساعت 10:30 2012/05/20
خروج: ساعت 15:30 2012/05/22
مدت زمان استفاده در روز: 36 ساعت
مدت زمان استفاده در شب: 16 ساعت

محسن واژدی
سه شنبه 17 مرداد 1391, 19:44 عصر
سلام علیکم

برای محاسبه ساعات مابین دوتاریخ: Private Sub Command1_Click()
MsgBox DateDiff("h", "2012/05/20 10:30", "2012/05/22 15:30")
End Sub
موفق باشید

hfalahaty1
سه شنبه 17 مرداد 1391, 21:39 عصر
سلام علیکم

برای محاسبه ساعات مابین دوتاریخ: Private Sub Command1_Click()
MsgBox DateDiff("h", "2012/05/20 10:30", "2012/05/22 15:30")
End Sub
موفق باشید

سلام آقا محسن
ممنون که سوالمو خوندی
راستش مشکل اختلاف ساعت نیست
مشکل الگوریتمی هست که بتونه بر اساس صورت مساله ساعات روز و شب بین دو تا تاریخ رو محاسبه کنه

m.4.r.m
چهارشنبه 18 مرداد 1391, 10:35 صبح
خوب شما یه قسمت به اسم تنظیمات یا هرچی درست کن یک جدول بساز و یه فیلد داشته باشه به اسم ساعت تو ساعت مثلا بنویس 9 حالا میای تو محاسبه ساعات وقتی از 8:30 تا 9:30 شب اختلاف به دست اومد با اون عدد 9 مقایسه کن اگه کوچیک بود که هیچی اگه بزرگ هم بود می فهمی چند ساعت اضافه شده در ضمن اگه از 9 بزرگتر بود یه فیلد دیگه داشته باش به اسم روز اگه بزرگتر از 9 بود یکی به روز اضافه کنه و .... بازم سوالی داشتی بپرس

arenaw
چهارشنبه 18 مرداد 1391, 13:15 عصر
سلام، منظورت اینه؟
روی فرمت 2 تا تکست باکس + 1 کامند بزار و این کد رو کپی کن:

Function MyFormat(str As String) As String
MyFormat = Format(str, "mm/dd/yyyy hh:mm")
End Function

Private Sub Command1_Click()
Dim AllHour As Integer
Dim AllDay As Integer
Dim NightH As Integer, DayH As Integer

AllHour = DateDiff("h", Text1, Text2)
AllDay = DateDiff("d", Text1, Text2)

Dim curH
curH = Hour(Text1)
For i = 1 To AllHour
If curH >= 5 And curH <= 21 Then DayH = DayH + 1 Else NightH = NightH + 1
curH = curH + 1
If curH = 24 Then curH = 0
Next i

Me.Cls
Print "All Hour : " & AllHour
Print "All Day : " & AllDay
Print "---"
Print "Day Hour : " & DayH
Print "Night Hour : " & NightH

End Sub

Private Sub Form_Load()
Text1 = MyFormat(Now)
Text2 = MyFormat(Now)
End Sub



تاریخ قرار گرفتن توی تکست ها هم به این صورته :
mah/ruz/sal saat:daghighe

hfalahaty1
شنبه 21 مرداد 1391, 12:05 عصر
[QUOTE=arenaw;1566750]سلام، منظورت اینه؟

سلام
دقیقا همین بود ممنونم