ورود

نسخه کامل مشاهده نسخه کامل : مشکل در یک کد ، ارور رو چه جوری برطرف کنم؟



shadmehrshadow1
30-05-2010, 19:45
من یه چنین چیزی میخوام:
ساعت اول = 17:1
ساعت دوم : 7:11
فاصله زماني= 14 ساعت و 10 دقيقه (اين عدد، طول شب را نشان مي دهد)
نصف طول شب= 7 ساعت و 5 دقيقه.
مقدار نهایی = ساعت اول + نصف طول شب ، که میشه 17:1+ 7:5= 24:6 يعني همان 0:6 بامداد
من میخوام با گرفتن مقدار ساعت اول و دوم جواب 0:6 رو به دست بیاورم . حالا اگه 24:6 هم شد مسئله ای نیست.
ممنون میشم کمکم کنید .
------------------------------------
البته:
وقتی من از کد زیر استفاده میکنم خطای زیر روی میده. چرا ؟ چه جوری رفعش کنم؟
Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
Me.Text = ListView1.SelectedItems(0).Index
End Sub
وقتی روی listview کلیک میکنم بعد از چند ثانیه خطاظاهر میشه . یا اینکه وقتی دوبار کلیک میکنم این طوری میشه.
خطا :
InvalidArgument=Value of '0' is not valid for 'index'. Parameter name: index
و اینکه چه جوری میتونیم FontSize یک لیبل رو تغییر داد .
یه کد آماده ندارید که مثل اعلام برنامه های هفته باشه . مثلا توش روز های هفته باشه و بشه توی روزهای هفته اش یک رویداد را ثبت کرد به همراه ساعت و هنگام رسیدن به آن ساعت و روز هر هفته به ما هشدار بدهد
من یه کد از اوقات شرعی دارم که به زبان وبی 6 هستش و خیلی هم خوب کار میکنه و زمان ها رو تقریبا درست نشون میده . ولی وقتی اونو تبدیل به ویبی 2008 کردم . اطلاعات خروجی اون با مقداری تغییر به دست میاد . چرا ؟ چه جوری درست میشه.
البته کد هردو رو توی یک فایل براتون گذاشتم :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

anvar.net
30-05-2010, 22:33
برای زمان ها می تونی مشابه زیر عمل کنی (البته من از سیستم 12 ساعت استفاده کردم)


Dim date1 As Date

Dim date2 As Date

date1 = Convert.ToDateTime(DateTimePicker1.Value)
date2 = Convert.ToDateTime(DateTimePicker2.Value)
Dim diff As System.TimeSpan
diff = date2 - date1
Me.Text = diff.Days & ":" & diff.Hours & ":" & diff.Minutes & ":" & diff.Seconds


جمع و تفریق هاش هم با خودت

واسه گرفتن Index در کنترل ListView همون کد خودت رو در رویداد کلیک کنترل لیست ویو بذار درست کار می کنه. اما یه عیبی داره اگر کاربر با کلیدهای کیبورد بین ردیف ها جابجا بشه دیگه نمیتونه ایندکس رو بگیره. واسه این مشکل می تونی تو رویداد SelectedIndexChanged کنترل لیست ویو از
ListView1.FocusedItem.Index برای گرفتن ایندکس ردیف فوکوس گرفته استفاده کنی

واسه تغییر فونت و سایز و .... البته در زمان اجرا از دستور زیر استفاده کن


Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point)

واسه زمانبندی ها هم متاسفانه واسه تاریخ شمسی من چیزی ندیدم اما واسه میلادی خیلی زیاده اسمشون هم Schedulig هست.

دلیل تغییرات شاید بعلت تفاوت در TYPE ها باشه. خیلی از تایپ های قدیمی در دات نت ساپورت نمی شه و یا دارای تغیراتی شدند.

می تونی از یه رفرنس مرجع برای تبدیل ها استفاده کنی , بهترین هم خود MSDN مایکروسافت هست.

در پناه حق

shadmehrshadow1
31-05-2010, 10:09
خیلی ممنونم.

هرکاری میکنم نمیتونم ساعت ها رو با هم جمع کنم!:19:

منظورتون از اینکه :

می تونی از یه رفرنس مرجع برای تبدیل ها استفاده کنی
چه جوری؟

shadmehrshadow1
31-05-2010, 17:55
و اینکه با کد زیر میشه یک روز به تاریخ اضافه کرد :
Dim SH As New System.Globalization.PersianCalendar
Me.Text = SH.AddDays("1398/03/10",1)

و من میخوام یک روز کم کنم . برای اینکار میشه از کد زیر استفاده کرد.

Dim SH As New System.Globalization.PersianCalendar
Me.Text = SH.AddDays("1398/03/10",-2)

من میخوام که مقدار 2 رو توی یک تکست باکس بنویسم و با کلیک روی دکمه ای مقدار مربوطه به یک متغیر بره و از طریق متغیر دو روز از تاریخ کم شه ولی هرکاری میکنم نمیشه .البته توی یک روز کار میکنه ولی توی دو روز نه.