PDA

View Full Version : اضافه کردن PersianTools.dll به پروژه VB.Net2005



hamidyha
پنج شنبه 20 اردیبهشت 1386, 08:19 صبح
سلام
مثالی در خصوص تبدیل تاریخ میلادی به شمسی از این سایت دانلود کردم PersianToolsSample ولی نتونستم در پروژه ام از اون استفاده کنم اگه ممکنه راهنمایی کنید.

rezaei manesh
پنج شنبه 20 اردیبهشت 1386, 08:57 صبح
PersianTools.dll کپی بکن تو پوشه binپروژت و بعد در اسکپرور سولیشن روی نام پروژه کلیک راست کن و گزینه add Refence رو بزن و این فایل رو انتخاب کن و بعد تویه قسمت choose Tool item اونو پیدا کن و بع فرمت اضافه کن
یا از کنترل مربوطه رو از روی فرم پروژه sample ی که داری کپی کن و روی فرم خودت paste کن(این یه کلک که من معمولا استفاده می کنم تا دنبال اون تو آیتم ها نگردم!)

hamidyha
پنج شنبه 20 اردیبهشت 1386, 13:10 عصر
اگه خروجی که بدست میاد رو خواسته باشیم به میلادی تبدیل کنیم مثلاً‌ تاریخ 11/05/2007 توسط PersianTools.dll تبدیل به 21/02/1386 می‌شه و اینو در یک textbox قرار می‌دهیم حالا کاربر این تاریخ به تاریخ 22/02/1386 تبدیل می کنه چظور می‌توان آنو به میلادی تبدیل کرد.

linux
پنج شنبه 20 اردیبهشت 1386, 19:24 عصر
اگه خروجی که بدست میاد رو خواسته باشیم به میلادی تبدیل کنیم مثلاً‌ تاریخ 11/05/2007 توسط PersianTools.dll تبدیل به 21/02/1386 می‌شه و اینو در یک textbox قرار می‌دهیم حالا کاربر این تاریخ به تاریخ 22/02/1386 تبدیل می کنه چظور می‌توان آنو به میلادی تبدیل کرد.
این ابزار را خیلی وقت پیش درست کردم و الان هم با این ابزار کار می کنم می توانی همه سوالات را در خود مثال پیدا کنی

Microsoft.net
جمعه 21 اردیبهشت 1386, 11:42 صبح
این persiantools یادمه تو بعضی از ماههای بعضی از سالها تاریخ رو اشتباه حساب میکرد چندین موردشو تو سالهای 1380 تا 1382 بهش برخوردم (منظورم تاریخ هست نه اینکه تو اون سالها تست شده!) ، تو سیستم خزانه ما مخصوصا باعث شد سود سرمایه رو اشتباه حساب کنیم و داد مشتری درومده بود بخاطر همین از پروژه حذفش کردم و از تاریخ جلالی که یکی از مدیران یاهو تو وبلاگش قرارداده بود و دقتش به میلی ثانیه بود استفاده کردم و خدا رو شکر مشکل ریشه ای حل شد . اگه پروژه رسمی مینویسین پیشنهاد میکنم ازش استفاده نکنین .

hamidyha
شنبه 22 اردیبهشت 1386, 07:46 صبح
ممکنه تاریخ جلالی رو که گفتی آدرسشو قرار بدین. متشکرم

Microsoft.net
شنبه 22 اردیبهشت 1386, 20:56 عصر
ممکنه تاریخ جلالی رو که گفتی آدرسشو قرار بدین. متشکرم

راستش سایتش رو یادم نیست اگه خواستی بگو برات همینجا آپلود کنم

linux
شنبه 22 اردیبهشت 1386, 23:45 عصر
این persiantools یادمه تو بعضی از ماههای بعضی از سالها تاریخ رو اشتباه حساب میکرد چندین موردشو تو سالهای 1380 تا 1382 بهش برخوردم (منظورم تاریخ هست نه اینکه تو اون سالها تست شده!) ، تو سیستم خزانه ما مخصوصا باعث شد سود سرمایه رو اشتباه حساب کنیم و داد مشتری درومده بود بخاطر همین از پروژه حذفش کردم و از تاریخ جلالی که یکی از مدیران یاهو تو وبلاگش قرارداده بود و دقتش به میلی ثانیه بود استفاده کردم و خدا رو شکر مشکل ریشه ای حل شد . اگه پروژه رسمی مینویسین پیشنهاد میکنم ازش استفاده نکنین .
ممکن از ابزار دیگری استفاده کرده باشید با این نام
خروجی توابع این ابزار با خروجی خود توابع persian calendar .نت یکی هست و در نسخه آخری که روی سایت قرار دادم از خود توابع persiancalendar استفاده کرده ام.
این ابزار فقط کار با کلاس persiancalendar را راحت تر می کنه همین البته اصلاحاتی انجام دادم که آن را در این فروم گذاشتم اگر آخرین نسخه را دانلود کنید بدون نگرانی می توانید از آن استفاده کنید

hamidyha
یک شنبه 23 اردیبهشت 1386, 08:01 صبح
راستش سایتش رو یادم نیست اگه خواستی بگو برات همینجا آپلود کنم
اگر ممکنه، از لطف شما سپاسگزارم

hamidyha
یک شنبه 23 اردیبهشت 1386, 08:03 صبح
ممکن از ابزار دیگری استفاده کرده باشید با این نام
خروجی توابع این ابزار با خروجی خود توابع persian calendar .نت یکی هست و در نسخه آخری که روی سایت قرار دادم از خود توابع persiancalendar استفاده کرده ام.
این ابزار فقط کار با کلاس persiancalendar را راحت تر می کنه همین البته اصلاحاتی انجام دادم که آن را در این فروم گذاشتم اگر آخرین نسخه را دانلود کنید بدون نگرانی می توانید از آن استفاده کنید
اگر لطف کنید و آدرسشو قرار دهید . متشکرم

hamidyha
یک شنبه 23 اردیبهشت 1386, 08:05 صبح
ممکن از ابزار دیگری استفاده کرده باشید با این نام
خروجی توابع این ابزار با خروجی خود توابع persian calendar .نت یکی هست و در نسخه آخری که روی سایت قرار دادم از خود توابع persiancalendar استفاده کرده ام.
این ابزار فقط کار با کلاس persiancalendar را راحت تر می کنه همین البته اصلاحاتی انجام دادم که آن را در این فروم گذاشتم اگر آخرین نسخه را دانلود کنید بدون نگرانی می توانید از آن استفاده کنید
با تشکر از شما اگر ممکنه لینکشو قرار بدید تا بتونم از آن استفاده کنم متشکرم

maroot
سه شنبه 25 اردیبهشت 1386, 00:33 صبح
برای تبدیل میلادی به شمسی


TextBox2.Text = pt.DateToPersian(TextBox1.Text ).LongDate


برای تبدیل شمسی به میلادی


pd = pt.PersianToDate(TextBox12.Text)
TextBox13.Text = pd.ToShortDateString


البته قبل از همه چیز بعد از اینکه فایل persiantools.dll را به Refrence هات اضافه کردی در ابتدای کلاس فرمت این کد را هم اضافه کن


Dim pt As New PersianToolS.PersinToolsClass

hamidyha
سه شنبه 25 اردیبهشت 1386, 10:04 صبح
میشه با کلاس PersianCalendar تاریخ شمسی رو که بدست می‌یاد و در یک textbox قرار دادیم و حالا تاریخ رو مثلاً یک دو روز پس و پیش کنیم بعد بتونیم تاریخ شمسی درون textbox به تاریخ میلادی تبدیل کنیم. یعنی
textbox1=date farsi
تاریخ شمسی textbox1 مثلاً از 25/02/1386 به 27/02/1386 تغییر داده و
textbox2=convert textbox1 to date Miladi

rezaei manesh
سه شنبه 25 اردیبهشت 1386, 11:04 صبح
دوستان این همه کد برات نوشتم که تبدیل دو طرفه رو انجام می ده شما باز می گی اگه تغییر بدم چطوری به میلادی تبدیل کنیم؟!!!!!
مثلا در کد دوستمون maroot این کار رو برات انحام داده؟


pd = pt.PersianToDate(TextBox1.Text)
TextBox13.Text = pd.ToShortDateString

من هنوز نمی دونم که مشکل شما چیه؟
این همه تابع و کلاس در زمینه تاریخ هست؟
اگه مشکلت حل نشد یه جسنجو بکن ببین چندتا کد دراین زمینه پیدا می کنی؟ البته به تاریخ پست ها توجه کن و کد ها که با دات نت 2 کار می کنند رو جدا کن

hamidyha
سه شنبه 25 اردیبهشت 1386, 16:49 عصر
دوستان این همه کد برات نوشتم که تبدیل دو طرفه رو انجام می ده شما باز می گی اگه تغییر بدم چطوری به میلادی تبدیل کنیم؟!!!!!
مثلا در کد دوستمون maroot این کار رو برات انحام داده؟


pd = pt.PersianToDate(TextBox1.Text)
TextBox13.Text = pd.ToShortDateString

من هنوز نمی دونم که مشکل شما چیه؟
این همه تابع و کلاس در زمینه تاریخ هست؟
اگه مشکلت حل نشد یه جسنجو بکن ببین چندتا کد دراین زمینه پیدا می کنی؟ البته به تاریخ پست ها توجه کن و کد ها که با دات نت 2 کار می کنند رو جدا کن
مشکل من اینه که می‌خوام روز هفته رو تبدیل کنم از persiantools استفاده نمی‌کنم فقط کلاس persiancalendar و توی تبدیل تاریخ شمسی به میلادی خطا تولید می‌کنه نمی دونم منظور من رو فهمدید یا نه این که عصبانیت نداره خوب شما حرفه ای هستید من تازه کار شاید بیان مطلب خوب نباشه و شما برداشت دیگری داشته باشید به هر حال از شما و دیگر دوستانی که محبت می‌کنند و امثال منو راهنمایی می کنند سپاسگزارم

rezaei manesh
سه شنبه 25 اردیبهشت 1386, 17:44 عصر
من عصبانی نشدم که !!!!!!!!!!!!!
کدت رو بزار ببینیم کجاش مشکل داره؟

hamidyha
سه شنبه 25 اردیبهشت 1386, 18:14 عصر
سلام
تصویر فرم و کد بخش مورد نظر را این قرار می‌دم متشکرم


Private Sub txt_date_jalase_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_date_jalase.LostFocus
Dim jc As New PersianCalendar
Dim dd As DateTime = DateTime.Now
Dim nameofday1 As Double

year = jc.GetYear(dd)
month = jc.GetMonth(dd)
day = jc.GetDayOfMonth(dd)
nameofday1 = jc.GetDayOfWeek(dd)
dayofyear1 = jc.GetDayOfYear(dd)
If Me.txt_date_jalase.Text.Trim = year + "/06/31" Then

Dim dd1 As DateTime = CDate(year + "/07/01")
nameofday1 = jc.GetDayOfWeek(dd1)
If nameofday1 = 6 Then

nameof_day = "شنبه"

End If

If nameofday1 = 0 Then

nameof_day = "یکشنبه"

End If

If nameofday1 = 1 Then

nameof_day = "دوشنبه"

End If

If nameofday1 = 2 Then

nameof_day = "سه شنبه"

End If

If nameofday1 = 3 Then

nameof_day = "چهارشنبه"

End If

If nameofday1 = 4 Then

nameof_day = "پنج شنبه"

End If

If nameofday1 = 5 Then

nameof_day = "جمعه"

End If

Me.lbl_day_jalase.Text = nameof_day
Else

Dim dd1 As DateTime = CDate(Me.txt_date_jalase.Text)
Select Case month
Case 1
month1 = "فروردین"

month = "01"

Case 2
month1 = "اردیبهشت"

month = "02"

Case 3
month1 = "خرداد"

month = "03"

Case 4
month1 = "تیر"

month = "04"

Case 5
month1 = "مرداد"

month = "05"

Case 6
month1 = "شهریور"

month = "06"

Case 7
month1 = "مهر"

month = "07"

Case 8
month1 = "آبان"

month = "08"

Case 9
month1 = "آذر"

month = "09"

Case 10
month1 = "دی"

Case 11
month1 = "بهمن"

Case 12
month1 = "اسفند"

End Select

Select Case day
Case 1
day = "01"

Case 2
day = "02"

Case 3
day = "03"

Case 4
day = "04"

Case 5
day = "05"

Case 6
day = "06"

Case 7
day = "07"

Case 8
day = "08"

Case 9
day = "09"

End Select

nameofday1 = jc.GetDayOfWeek(dd1)
If Me.txt_date_jalase.Text.Trim >= year + "/07/01" And Me.txt_date_jalase.Text.Trim < year + "/08/01" Then

nameofday1 += 1
If nameofday1 = 7 Then

nameofday1 = 0
End If

End If

If nameofday1 = 6 Then

nameof_day = "شنبه"

End If

If nameofday1 = 0 Then

nameof_day = "یکشنبه"

End If

If nameofday1 = 1 Then

nameof_day = "دوشنبه"

End If

If nameofday1 = 2 Then

nameof_day = "سه شنبه"

End If

If nameofday1 = 3 Then

nameof_day = "چهارشنبه"

End If

If nameofday1 = 4 Then

nameof_day = "پنج شنبه"

End If

If nameofday1 = 5 Then

nameof_day = "جمعه"

End If

Me.lbl_day_jalase.Text = nameof_day
End If

End Sub


datef = year + "/" + month + "/" + day

maroot
چهارشنبه 26 اردیبهشت 1386, 00:12 صبح
سلام
شما در ابتدای برنامه به dd مقدار دادی که نباید بدی چون اینطوری فقط امروز رو به دست میاری به جای این که به dd مقدار datetime.now را بدی، مقدار textbox رو بده که حتی اگه کاربر تغییر داد فرقی برای برنامه نکنه و کارش رو انجام بده.
یعنی در خط 5 بنویس dd=txt_date_jalase.text
ولی یک نکته مهمتر از همه:
به جای این همه IF از select case استفاده کن، که واقعا در مورد برنامه شما معجزه می کنه.
موفق باشی.