PDA

View Full Version : مقایسه بین دو زمان (ساعت)



Tiro Pro
سه شنبه 21 اسفند 1386, 19:32 عصر
سلام دوستان
من در این تاپیک هر چه گشتم نتوانستم راجع موضوع مقایسه بین دو زمان چیزی پیدا کنم
اگر جایی در باره این موضوع چیزی بیان شده لطفا مرا راهنمایی کنید
سوال : دوستان کسی هست که مرا راهنمایی کنه چگونه می تونم دو زمان را با هم مقایسه کنم مثلا ساعت 17:22:34 با 05:11:41 . متشکرم

vbhamed
سه شنبه 21 اسفند 1386, 23:56 عصر
سلام
با تابع datediff
این تابع می تونه دو زمان که شامل تاریخ و ساعت یا تاریخ تنها و یا ساعت تنها باشه رو با هم مقایسه کنه
تو راهنمای ویژوال بیسیک (MSDN) مثالش هست
اختلاف رو هم به سال و ماه و روز و ساعت و دقیقه و ثانیه و هرچی که بخوای می ده


مثلا می تونه بگه از این سال تا سال دیگه میشه 31536000 ثانیه

piter1355
سه شنبه 21 اسفند 1386, 23:56 عصر
سلام دوستان
من در این تاپیک هر چه گشتم نتوانستم راجع موضوع مقایسه بین دو زمان چیزی پیدا کنم
اگر جایی در باره این موضوع چیزی بیان شده لطفا مرا راهنمایی کنید
سوال : دوستان کسی هست که مرا راهنمایی کنه چگونه می تونم دو زمان را با هم مقایسه کنم مثلا ساعت 17:22:34 با 05:11:41 . متشکرم

منظورت از مقایسه چیه ؟ میخوای ببینی بین این دو زمان چقدر (چند ثانیه یا دقیقه یا ساعت ) اختلاف وجود داره
اگر منظورت همینه مثالی که برات نوشتم جوابتو میده


Dim A, B As Date
A = "05:11:41"
B = "17:22:34"
Print DateDiff("S", A, B)

ضمنا بجای پارامتر S میتونی ا زمقادیر زیر استفاده کنی


DateInterval.Day d Day
DateInterval.DayOfYear y Day
DateInterval.Hour h Hour
DateInterval.Minute n Minute
DateInterval.Month m Month
DateInterval.Quarter q Quarter
DateInterval.Second s Second
DateInterval.Weekday w Week
DateInterval.WeekOfYear ww Calendar week
DateInterval.Year yyyy Year

Tiro Pro
چهارشنبه 22 اسفند 1386, 09:22 صبح
با تشکر از دوستان که تا اینجا راهنمایی کردند
با یه مثال دیگه مطلب رو بیان میکنم
مثلا ساعت کامپیوتر هست 09:45:15 و من مخواهم در یک textbox وارد کنم 10:45:14 و در ساعت مقرر (وارد شده) یک سری عملیات بدون نیاز به کاربر انجام بگیره(به صورت اتوماتیک)

ƒxmahdi
چهارشنبه 22 اسفند 1386, 12:39 عصر
اگه شما می خواهید اختلاف بین دو زمان را بدست بیاورید من در تاپیک زیر اونو کاملا توضیح دادم
http://barnamenevis.org/forum/showthread.php?t=95064

vbhamed
چهارشنبه 22 اسفند 1386, 23:49 عصر
سلام
این که کاری نداره


If CDate(text2) = Time Then MsgBox "your code here !"

اوبالیت به بو
پنج شنبه 23 اسفند 1386, 09:26 صبح
دو زمان را با هم مقایسه کنم
دوستان این جارو تشخیص ندادن. خیلی جالبه.
اختلاف...:متفکر:مقا...:قهقهه:: یج::گیج:

اوبالیت به بو
پنج شنبه 23 اسفند 1386, 09:47 صبح
x1 = InputBox("زمان یا ساعت اول را وارد کنید", "First Time")
x2 = InputBox("زمان یا ساعت دوم را وارد کنید", "Second Time")
x1 = x1
x2 = x2
MsgBox x1
MsgBox x2
If x1 > x2 Then
MsgBox "زمان اول بزرگتر از زمان دوم است"
Else
MsgBox "زمان دوم بزرگتر از زمان اول است"
End If

تست شده.

Tiro Pro
پنج شنبه 23 اسفند 1386, 11:31 صبح
باز هم تشکر

vbhamed
پنج شنبه 23 اسفند 1386, 23:47 عصر
با تشکر از دوستان که تا اینجا راهنمایی کردند
با یه مثال دیگه مطلب رو بیان میکنم
مثلا ساعت کامپیوتر هست 09:45:15 و من مخواهم در یک textbox وارد کنم 10:45:14 و در ساعت مقرر (وارد شده) یک سری عملیات بدون نیاز به کاربر انجام بگیره(به صورت اتوماتیک)


obalitjoOon عزیز
نقل قول بالا رو ببینید
منظور مقایسه زمان جاری سیستم با زمانی است که در یک textbox وارد می‌شود

اوبالیت به بو
جمعه 24 اسفند 1386, 10:37 صبح
من کاری به این نقل قول دومی ندارم من جواب اولین پست رو دادم حالا ایشون نظرش عوض شده به من ربطی نداره.
تو نقل قول دومی هم چیزی به اسم اختلاف نیست. منظورشون یه جور Alarm ساختن هستش.(تا اون جایی که فهمیدم....)

Tiro Pro
شنبه 25 اسفند 1386, 12:49 عصر
سلام
دوستان اگر نتونستم مطلب رو خوب بیان کنم مرا ببخشید
هر چند دوستان زحمت کشیدند و استفاده کردیم ولی
مشکل کار اینجاست
به مثال: من روی فرم دو ساعت سه تکست باکس یک لیبل و یک دکمه اضافه کردم و اینطور نوشتم
private sub command_click()
if text1.text=empty then
msgbox "please insert time",vbokonly+vbexclamation,"Error"
e2S=datediff("s",text1,time)
text2.text=e2S
timer1.enabled=ture
end if
end sub
private sub form_load()
label1.caption=time$
timer1.interval=1000
timer2.interval=1000
timer1.enabled=false
end sub
private sub timer1_timer()
a2S=val(text2.text)
if a2S<0 then
b2S=a2S+1
text2.text=b2S
if b2S=0 then shell text3.text,vbnormalfocus
end if

تا این قسمت (تا زمانی که ساعت ورودی ما از ساعت کامپیوتر بیشتر است(زمان بدست آمده منفی است)) عملیات درست است
if a2S>0 then
b2S=a2S-1
text2.text=b2S
if b2S=0 then shell text3.text,vbnormalfocus
end if
end sub
private sub timer2_timer()
label1.caption=time$
end sub

و در این قسمت (تا زمانی که ساعت ورودی ما از زمان کامپیوتر کمتر است(زمان بدست آمده مثبت است))پس عملیات درست انجام نمی گیرد(ساعت کامپیوتر 16:18:29 و ما می خواهیم عملیات ما در ساعت 04:50:30 فرداش انجام گیرد)
هر چند اذیت کردم ولی ببخشید...
متشکرم از پاسخگویی شما

Tiro Pro
شنبه 25 اسفند 1386, 19:25 عصر
بابا زمان کمتر رو تشخیص نمی ده

Mbt925
شنبه 25 اسفند 1386, 19:38 عصر
نیازی نیست که اختلاف دو زمان رو بدست بیارین.

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

Tiro Pro
یک شنبه 26 اسفند 1386, 10:33 صبح
سلام من از دستوری که دوست خوبم گذاشت استفاده کردم ولی نشد
private sub cmd_click()
if cDate(text1)=time$ then shell text2.text, vbnormal
end sub
و من می خوام برنامه به ثانیه زمان رو بهم بده که من بتونم اونو به ساعت دقیقه و ثانیه تبدیل کنم ( و زمان معکوس را در برنامه نوشون بده)
متشکرم از لطفتون

Tiro Pro
یک شنبه 26 اسفند 1386, 17:10 عصر
با سلام من تونستم به کمک دستور DateDeff (که زمان رو به ثانیه بده) با زمان کنونی , زمان رو به ساعت و دقیقه و ثانیه تبدیل میکنه به کمک دستور فوق
S2=datedeff("s",text1,time)
S2=S2-86400
hh=S2\3600
mm=(S2 mod)\60
ss=((S2 mod 60)\60) mod 60
text2.text=slng(hh_ &":"& slng(mm) &":" slng(ss)
ولی عیب کار این که من فقط می تونم این کار رو با دو کلید انجام دهم (یک کلید مثل این برای زمانهای کوچکتر و یک کلید بدون این قسمت S2=S2-86400 برای زمانهای بزرگتر ار زمان فعلی)

Mbt925
یک شنبه 26 اسفند 1386, 17:46 عصر
Time Alert

این نمونه ی ساده بیشتر آموزشی نوشته شده ، وگرنه با این ابزار کار خیلی سادست.

http://soda.parsaspace.com/MBT925/Learn-Sample/TimeAlert%20SampleScrShot.jpg

دانلود (http://soda.parsaspace.com/MBT925/Learn-Sample/TimeAlert%20Sample.rar)