PDA

View Full Version : سوال: کار با زمان ( چگونه با ساعت در vb کار کنیم)



saeedbxvs2
چهارشنبه 21 مرداد 1388, 10:08 صبح
دوستان من می خوام با ساعت و دقیقه و ثانیه کار کنم و جمع و ضرب کنم

آیا میشه جوری عدد اشاری رو تعریف کرد که قسمت اعشار تا 59 بیشتر نشه

الان برای محاسبه باید از فرمول زیر استفاده کنم که دقیق نیست حجم زیادی کد می خواد

(البته برای برنامه من )

(ساعت * 60 )+ دقیقه=ساعت مورد نظر (البته این ساعت زیاد دقیق نیست) و برای جمع کردن

دو ساعت به این روش زیر عمل می کنم

ساعت 1 + ساعت 2 = ساعت جدید

ساعت جدید / 60 = ساعت
60 modd ساعت جدید = دقیقه ساعت جدید

مثل:

6:30 ساعت اول

9:15 ساعت دوم

(60*6)+30=390
(60*9)+15=555

390+555=945

945/60=15

954mod 60 = 45

و روش بالا محاسبات بالا با خطای بالا داره

majjjj
چهارشنبه 21 مرداد 1388, 12:50 عصر
Dim t2 As Date
Dim t1 As Date
Dim t3 As Date
Private Sub Command1_Click()
t1 = Time
Text1.Text = t1
End Sub
Private Sub Command2_Click()
t2 = Time
Text2.Text = t2
End Sub
Private Sub Command3_Click()
t3 = t1 + t2
Text3.Text = t3
End Sub

ببین این کارت رو راه میاندازه؟

saeedbxvs2
جمعه 23 مرداد 1388, 01:47 صبح
دوست عزیز این کد اصلا یه چیزه دیگه است می خوام یه الگوریتم به شکل زیر بنویسم

روش محاسبه ساعات شب و روز براي استفاده از جدول ساعات جهت نوشتن دعا و غيره

براي روز : ابتدا ساعت طلوع آفتاب رو در شهرتون با ساعت اذان مغرب شهرتون جمع ميكنيد مساوي مي شه با كل ساعات روز

بعد در عدد شصت ضرب ميكنيد تا به دقيقه تبديل بشه
بعد هم بر عدد دوازده تقسيم ميكنيد عددي باقيمانده ميشه
براي نگاه كردن به جدول ساعت اول همون ساعت طلوع آفتاب هست و ساعت دوم رو با اضافه كردن
عدد باقي ماند از محاسبه بالا به ساعت طلوع آفتاب بدست ميآوريم و سعات سوم و بقيه ساعات رو هم
همينطور

مثال

ساعت طلوع آفتاب = 5.50

اذان مغرب = 8.45

كل ساعات روز = جمع دو عدد = 14.35
14 * 60 = 840 = تبديل به دقيقه
840 + 35 = 875 كل دقيقه ها
12/ 875 = 73

ساعت اول = 5.50
5:50 + 73 ( 13 : 1) = 03 : 7 = ساعت دوم
03 : 7+ ( 13 : 1) = 16 : 8 = ساعت سوم
همين طور حساب ميكنيد تا دوازده ساعت


ساعات شب رو هم به همين ترتيب محاسبه ميكنيد

از ساعت اذان مغرب تا طلوع آفتاب فردا

45: 8 --- 50 : 5



نکته خیلی مهم محاسبه

اول ميدوني كه مثلا توتابستون روزها بلند و شبها كوتاه و زمستونها روزها كوتاه و شبها بلند

پس عملا ثابت بودن مبناي 12 ساعت هم براي روز و هم براي شب در طول سال براي جدول ساعات در علوم غريبه اشتباه است
و اكثر افرادي كه در كتابها از هم كپي ميكنند اصلا به اين موضوع توجه ندارند و بيان نمي كنند كه چه طوري استفاده ميشه
درجدول درسته كه تا 12 ساعت رو بيان كردن ولي براي وقتي هست كه روز يا شب در محاسبه ما 12 ساعت داشته باشه نه كمتر
مثلا در تهران از ازان مغرب هم نه از غروب آفتاب حساب كنيم
اون هم يك ساعت يك ساعت

25 : 20 = غروب آفتاب = ساعت اول شب 25

25 :21
25 :22
25 :23
25: 24
25: 1
25: 2
25: 3
25: 4
25: 5

پس شب ما 9 ساعت داره نه 12 ساعت

vbhamed
جمعه 23 مرداد 1388, 03:07 صبح
سلام

يك تابع براتون نوشتم كه دو تا ساعت رو مي گيره و جمع مي زنه
البته چون قراره نتيجه به ساعت و دقيقه برگرده دو تا پارامتر h و m بهش مي ديم و نتيجه تو همونا برمي گرده



Private Sub SumTime(h1!, m1!, h2!, m2!, hs!, ms!)

Dim x!
x = (h1 + h2) * 60 + m1 + m2
hs = x \ 60
ms = x Mod 60

End Sub

Private Sub Form_Load()

Dim hs!, ms!

'12:40 + 2:39 = 15:19
SumTime 12, 40, 2, 39, hs, ms

MsgBox hs & " : " & ms

End Sub

saeedbxvs2
جمعه 23 مرداد 1388, 13:26 عصر
سلام

يك تابع براتون نوشتم كه دو تا ساعت رو مي گيره و جمع مي زنه
البته چون قراره نتيجه به ساعت و دقيقه برگرده دو تا پارامتر h و m بهش مي ديم و نتيجه تو همونا برمي گرده



Private Sub SumTime(h1!, m1!, h2!, m2!, hs!, ms!)

Dim x!
x = (h1 + h2) * 60 + m1 + m2
hs = x \ 60
ms = x Mod 60

End Sub

Private Sub Form_Load()

Dim hs!, ms!

'12:40 + 2:39 = 15:19
SumTime 12, 40, 2, 39, hs, ms

MsgBox hs & " : " & ms

End Sub


دوست عزیز کد اشتباه است مثلا این دو ساعت رو با هم جمع کنی

7:36 + 8:53 = 16:29

ولی در کد شما می شه 36 : 15 می شه

vbhamed
یک شنبه 25 مرداد 1388, 15:28 عصر
سلام

مطمئنيد درست نوشتيد
من كه تست كردم مشكلي نداشت


Private Sub Form_Load()

Dim hs!, ms!
SumTime 8, 53, 7, 36, hs, ms
MsgBox hs & " : " & ms

End Sub

baran.ng85
سه شنبه 27 مرداد 1388, 12:59 عصر
با سلام
شما میدونید که vb قسمت اعشار اعداد نوع double رو ساعت در نظر میگیره از این ویژ گی میتونید برای حل مشکلتون استفاده کنید
اگر دقیقتر بگید که چرا جمع ساعت ها رو می خوای را هنمایی بیشتر ی متونم بکنم

baran.ng85
چهارشنبه 28 مرداد 1388, 13:03 عصر
با سلام
من قبلا تاپیک شما را خوانده بودم اما منظر اصلی شما را متوجه نشدم
به هر حال
در vb عدد 12.2 را به متغیر نوع date نسبت دهیم ان را 12 روز و 0.2 روز در نظر میگیرد
اما در واقع ا ز روی 0.2 زمان را محاسبه می کندپس می توان ساعت را به طور دقیق از روی ان به شکل زیر بدست اورد


روز ساعت
1 24
0.2 x
و الی اخر ......
امیدوارم که این مطلب راهکار مفیدی برای شما باشد.

saeedbxvs2
پنج شنبه 29 مرداد 1388, 20:09 عصر
با سلام
من قبلا تاپیک شما را خوانده بودم اما منظر اصلی شما را متوجه نشدم
به هر حال
در vb عدد 12.2 را به متغیر نوع date نسبت دهیم ان را 12 روز و 0.2 روز در نظر میگیرد
اما در واقع ا ز روی 0.2 زمان را محاسبه می کندپس می توان ساعت را به طور دقیق از روی ان به شکل زیر بدست اورد


روز ساعت
1 24
0.2 x
و الی اخر ......
امیدوارم که این مطلب راهکار مفیدی برای شما باشد.

دوست عزیز من متوجه نشدم میشه با یه مثال بفرمایید

saeedbxvs2
جمعه 30 مرداد 1388, 01:05 صبح
دوستان اگه کسی برنامه ایی که در تاپیک هست بنویسه من می خرمش

قیمت پیشنهادی 15000 تومان

saeid12
جمعه 30 مرداد 1388, 16:25 عصر
سلام
دوست عزیز من دقیقا متوجه منظورتون نشدم اما نسبت به توضیح تاپیک اولتون اینو نوشتم...
شاید به دردتون بخوره...
اگه این نبود خواستتون باید بگم یکم بیشتر راجع به کاری که میخواید انجام بدید توضیح بدین.

saeedbxvs2
یک شنبه 01 شهریور 1388, 20:14 عصر
دوست عزیز این کد اصلا یه چیزه دیگه است می خوام یه الگوریتم به شکل زیر بنویسم

روش محاسبه ساعات شب و روز براي استفاده از جدول ساعات جهت نوشتن دعا و غيره

براي روز : ابتدا ساعت طلوع آفتاب رو در شهرتون با ساعت اذان مغرب شهرتون جمع ميكنيد مساوي مي شه با كل ساعات روز

بعد در عدد شصت ضرب ميكنيد تا به دقيقه تبديل بشه
بعد هم بر عدد دوازده تقسيم ميكنيد عددي باقيمانده ميشه
براي نگاه كردن به جدول ساعت اول همون ساعت طلوع آفتاب هست و ساعت دوم رو با اضافه كردن
عدد باقي ماند از محاسبه بالا به ساعت طلوع آفتاب بدست ميآوريم و سعات سوم و بقيه ساعات رو هم
همينطور

مثال

ساعت طلوع آفتاب = 5.50

اذان مغرب = 8.45

كل ساعات روز = جمع دو عدد = 14.35
14 * 60 = 840 = تبديل به دقيقه
840 + 35 = 875 كل دقيقه ها
12/ 875 = 73

ساعت اول = 5.50
5:50 + 73 ( 13 : 1) = 03 : 7 = ساعت دوم
03 : 7+ ( 13 : 1) = 16 : 8 = ساعت سوم
همين طور حساب ميكنيد تا دوازده ساعت


ساعات شب رو هم به همين ترتيب محاسبه ميكنيد

از ساعت اذان مغرب تا طلوع آفتاب فردا

45: 8 --- 50 : 5



نکته خیلی مهم محاسبه

اول ميدوني كه مثلا توتابستون روزها بلند و شبها كوتاه و زمستونها روزها كوتاه و شبها بلند

پس عملا ثابت بودن مبناي 12 ساعت هم براي روز و هم براي شب در طول سال براي جدول ساعات در علوم غريبه اشتباه است
و اكثر افرادي كه در كتابها از هم كپي ميكنند اصلا به اين موضوع توجه ندارند و بيان نمي كنند كه چه طوري استفاده ميشه
درجدول درسته كه تا 12 ساعت رو بيان كردن ولي براي وقتي هست كه روز يا شب در محاسبه ما 12 ساعت داشته باشه نه كمتر
مثلا در تهران از ازان مغرب هم نه از غروب آفتاب حساب كنيم
اون هم يك ساعت يك ساعت

25 : 20 = غروب آفتاب = ساعت اول شب 25

25 :21
25 :22
25 :23
25: 24
25: 1
25: 2
25: 3
25: 4
25: 5

پس شب ما 9 ساعت داره نه 12 ساعت

دوست عزیز یه تیکه از برنامه رو نوشتی